寻找时间平均问题的最快解决方案。
我有一个日期时间对象列表。需要求时间的平均值(不包括年月日)。 这是我到目前为止得到的:
import datetime as dtm
def avg_time(times):
avg = 0
for elem in times:
avg += elem.second + 60*elem.minute + 3600*elem.hour
avg /= len(times)
rez = str(avg/3600) + ' ' + str((avg%3600)/60) + ' ' + str(avg%60)
return dtm.datetime.strptime(rez, "%H %M %S")
最佳答案
这是一个简短而有趣的解决方案(虽然可能不是最快的)。它获取日期列表中的每个日期与某个任意引用日期之间的差异(返回 datetime.timedelta),然后对这些差异求和并取平均值。然后它添加回原始引用日期。
import datetime
def avg(dates):
any_reference_date = datetime.datetime(1900, 1, 1)
return any_reference_date + sum([date - any_reference_date for date in dates], datetime.timedelta()) / len(dates)
关于python - 日期时间列表的平均时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19681703/