В python .. ищем простой код для вывода строки из даты и времени и вывода из списка - PullRequest
0 голосов
/ 19 января 2020

Я хотел бы l oop через каждое среднее (индекс [0]) и каждый час (индекс [1]) (в этом порядке) в первых пяти списках: a = [[38.59, '15' ], [23.81, '02'], [21.52, '20'], [16.8, '16'], [16.01, '21'], [14.74, '13'], [13.44, '10'], [13.24, '18'], [13.23, '14'], [11.46, '17']]

Я бы хотел использовать метод str.format (), чтобы напечатать часы и среднее значение в следующий формат: output str = "15:00: среднее количество комментариев в сообщении 38,59"

Чтобы отформатировать часы, я могу использовать конструктор datetime.strptime () для возврата объекта datetime, а затем использовать strftime () метод для указания формата времени.

Чтобы отформатировать среднее, я могу использовать {: .2f}, чтобы указать, что нужно использовать только два десятичных знака. Как я могу выполнить sh это с 2-3 строками кода?

Ответы [ 2 ]

2 голосов
/ 19 января 2020
from datetime import datetime as dt

a = [[38.59, '15'], [23.81, '02'], [21.52, '20'], [16.8, '16'], [16.01, '21'], [14.74, '13'], [13.44, '10'], [13.24, '18'], [13.23, '14'], [11.46, '17']]
for elem in a[:5]:
    dtObj = dt.strptime(elem[1], '%H')
    timeString = dt.strftime(dtObj, '%H:%M')
    roundedAverageString = "{0:.2f}".format(elem[0])
    print("{}: {} average comments per post".format(timeString, roundedAverageString))

пример вывода: 15:00: в среднем 38,59 комментариев на пост

1 голос
/ 19 января 2020

Использование datetime излишне, учитывая данные:

data = [[38.59, '15'], [23.81, '02'], [21.52, '20'], [16.8, '16'], [16.01, '21'], [14.74, '13'], [13.44, '10'], [13.24, '18'], [13.23, '14'], [11.46, '17']]
for ave,hr in data[:5]:
    print(f'{hr}:00: {ave:5.2f} average comments per post')
15:00: 38.59 average comments per post
02:00: 23.81 average comments per post
20:00: 21.52 average comments per post
16:00: 16.80 average comments per post
21:00: 16.01 average comments per post
...