python添加到datetime的小时数组

时间:2016-09-26 19:59:22

标签: python datetime

将timedelta导入为td 我有一个约会时间,我想为它添加一个小时数组。

即。

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 个答案:

答案 0 :(得分: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列表。