【问题标题】:python add array of hours to datetimepython将小时数组添加到日期时间
【发布时间】:2016-09-27 04:08:03
【问题描述】:

将 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 的巨型数组,我想将 hrs = [1,2,3,4] 添加到日期的每一行以获得大小为 100x4 的日期时间数组。因此,在我的情况下,for 循环不起作用。

【问题讨论】:

  • 为什么 for 循环不起作用?...

标签: python datetime


【解决方案1】:

使用嵌套的列表理解.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 的列表列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 2021-01-19
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    相关资源
    最近更新 更多