首页 > 解决方案 > 我如何循环数月,一次跳过三个?

问题描述

我有以下数组:

dates
array(['2015-07-01T00:00:00.000000000', '2015-08-01T00:00:00.000000000',
       '2015-09-01T00:00:00.000000000', '2015-10-01T00:00:00.000000000',
       '2015-11-01T00:00:00.000000000', '2015-12-01T00:00:00.000000000',
       '2016-01-01T00:00:00.000000000', '2016-02-01T00:00:00.000000000',
       '2016-03-01T00:00:00.000000000', '2016-04-01T00:00:00.000000000',
       '2016-05-01T00:00:00.000000000', '2016-06-01T00:00:00.000000000',
       '2016-07-01T00:00:00.000000000', '2016-08-01T00:00:00.000000000',
       '2016-09-01T00:00:00.000000000', '2016-10-01T00:00:00.000000000',
       '2016-11-01T00:00:00.000000000', '2016-12-01T00:00:00.000000000',
       '2017-01-01T00:00:00.000000000', '2017-02-01T00:00:00.000000000',
       '2017-03-01T00:00:00.000000000', '2017-04-01T00:00:00.000000000',
       '2017-05-01T00:00:00.000000000', '2017-06-01T00:00:00.000000000',
       '2017-07-01T00:00:00.000000000', '2017-08-01T00:00:00.000000000',
       '2017-09-01T00:00:00.000000000', '2017-10-01T00:00:00.000000000',
       '2017-11-01T00:00:00.000000000', '2017-12-01T00:00:00.000000000'],
      dtype='datetime64[ns]')

我会在第一次迭代时创建一个循环,在第二3 months次迭代中,dates[0]依此类推dates[3]dates[3]dates[6]

这就是我正在做的

c1 = 0
c2 = 3
for i,j in enumerate(dates[:-3]):
    v1 = dates[c1]
    v2 = dates[c2]
    c1 = c1 + 3
    c2 = c2 + 3

有没有更优雅的方法来做到这一点?

标签: pythondate

解决方案


for date1, date2 in zip(dates[:-3:3], dates[3::3]):
    # do stuff

推荐阅读