我正在努力解决以下问题:
如何对时间增量列表进行求和,例如:
[datetime.timedelta(0, 3600), datetime.timedelta(0, 3600), datetime.timedelta(0, 7200)]
这应该导致 datetime.timedelta(0, 14400),即4小时。
试试这个,
import datetime
print sum(time_list,datetime.timedelta())
结果:
datetime.timedelta(0, 14400)
datetime.timedelta(0,0)
作为初始值传递给sum
函数。import datetime
arr = [datetime.timedelta(0, 3600), datetime.timedelta(0, 3600), datetime.timedelta(0, 7200)]
print(sum(arr, datetime.timedelta(0,0)))
输出:
4:00:00
import pandas as pd
df=pd.DataFrame([datetime.timedelta(0, 3600), datetime.timedelta(0, 3600), datetime.timedelta(0, 7200)])
df[0].sum()
Timedelta('0 days 04:00:00')
另一种解决方案:使用{{link1:functools.reduce
}},
import operator
import functools
import datetime
dts = [datetime.timedelta(0, 3600), datetime.timedelta(0, 3600), datetime.timedelta(0, 7200)]
result = functools.reduce(operator.add, dts)
print(result)
# 4:00:00