2017-02-27 16 views
1
timedeltas列表

我有以下問題所困擾總和可以用Python

[datetime.timedelta(0, 3600), datetime.timedelta(0, 3600), datetime.timedelta(0, 7200)] 

這將導致datetime.timedelta(0, 14400) => 4小時

回答

3

試試這個,

import datetime 
print sum(time_list,datetime.timedelta()) 

結果:

datetime.timedelta(0, 14400) 
+0

是沒有工作,THX – bdriven

2

通過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 
0

您可以使用熊貓

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') 
0

另一種解決方案:使用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