конвертировать числа в часы в питоне - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь преобразовать числа в формат часов, как показано ниже,

numbers = [7,12,16,18]

Ожидаемый OP:

hours = ["07:00 AM","12:00 PM","04:00 PM","06:00 PM"]

Есть ли способ добиться этого?

Ответы [ 4 ]

0 голосов
/ 11 декабря 2018

Использование стандартной библиотеки:

import datetime

numbers = [7, 12, 16, 18]
hours = [datetime.time(num).strftime("%I:00 %p") for num in numbers]
# ['07:00 AM', '12:00 PM', '04:00 PM', '06:00 PM']
0 голосов
/ 11 декабря 2018

Попробуйте это:

import datetime
numbers = [7,12,16,18]
hours=[]
for i in numbers:

    if i <= 12:
        time = str(datetime.timedelta(hours=i)) +" AM"
    else:
        time = str(datetime.timedelta(hours=i-12)) + " PM"
    hours.append(time)

print(hours)

ВЫХОД:

['7:00:00 AM', '12:00:00 PM', '4:00:00 PM', '6:00:00 PM']
0 голосов
/ 11 декабря 2018

Если я могу использовать функцию для ее решения:

def function(lst):
    returned_list=[]
    for item in lst:
        end="AM"
        if item >=12:
            end="PM"
        if item >12:
            item-=12
        if len(str(item))<2:
            item='0'+str(item)
        returned_list.append("{}:00 {}".format(item,end))
    return returned_list

Ограничение программы состоит в том, что она может выполнять только от 0 до 23

0 голосов
/ 11 декабря 2018

Не самый чистый способ, но сработает:

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']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...