2016-09-26 82 views
1

導入timedelta作爲td 我有一個日期時間,我想添加一個數組的小時數。蟒蛇添加數組到datetime

Date[0] 
datetime.datetime(2011, 1, 1, 0, 0) 

Date[0] + td(hours=9) 
datetime.datetime(2011, 1, 1, 9, 0) 

hrs = [1,2,3,4] 
Date[0] + td(hours=hrs) 

但很明顯,它不支持。

上面的日期數組是一個100X1大小的巨型數組,我想爲Date的每一行添加hrs = [1,2,3,4]以獲得大小爲100x4的日期時間數組。所以,for循環在我的情況下不起作用。

+1

爲什麼不是for循環正常工作? – Sayse

回答

2

使用嵌套的列表理解.replace() method。樣品清單2個日期時間:

In [1]: from datetime import datetime 

In [2]: l = [datetime(2011, 1, 1, 0, 0), datetime(2012, 1, 1, 0, 0)] 

In [3]: hours = [1, 2, 3, 4] 

In [4]: [[item.replace(hour=hour) for hour in hours] for item in l] 
Out[4]: 
[[datetime.datetime(2011, 1, 1, 1, 0), 
    datetime.datetime(2011, 1, 1, 2, 0), 
    datetime.datetime(2011, 1, 1, 3, 0), 
    datetime.datetime(2011, 1, 1, 4, 0)], 
[datetime.datetime(2012, 1, 1, 1, 0), 
    datetime.datetime(2012, 1, 1, 2, 0), 
    datetime.datetime(2012, 1, 1, 3, 0), 
    datetime.datetime(2012, 1, 1, 4, 0)]] 

結果列表中的一個2x4的列表。