Не самый чистый способ, но сработает:
numbers = [7,12,16,18]
hours = []
for n in numbers:
if n < 12:
if len(str(n)) == 1:
temp = "0"+str(n)+":00 AM"
else:
temp = str(n)+":00 AM"
else:
x = n - 12
if x == 0:
temp = "12:00 PM"
if len(str(x)) == 1:
temp = "0"+str(x)+":00 PM"
else:
temp = str(x)+":00 PM"
hours.append(temp)
Вывод:
['07:00 AM', '12:00 PM', '04:00 PM', '06:00 PM']