我想遍历前五个列表中的每个平均值(指数)和每小时(Index1)(按此顺序):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}来表示应该只使用两位小数。我如何用2-3行代码来实现这一点?
发布于 2020-01-20 02:49:59
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平均每篇评论
发布于 2020-01-20 03:07:47
在给定数据的情况下,使用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 posthttps://stackoverflow.com/questions/59813219
复制相似问题