如何使用 if 条件在循环中递增迭代器?

How to increment iterator in loop with if condition?

我有一个 xarray 数据数组,我想按年份将其重新分配给字典。我无法获得正确的增量,因为代码只能正确获得前 3 年(直到第一个闰年)的日期。我尝试删除所有闰年,这样我只能有 365 的增量,但是,此后我遇到了内存错误。

pre={}
start=-365
for i in np.arange(1982,2020):
    if not i in leap_years:
        start+=365
        pre[i]=precip[start:start+365]
    else:
        start+=365
        pre[i]=precip[start:start+366]

您使用start的方式,设置pre[i]为闰年后需要再次递增

pre={}
start=-365
for i in np.arange(1982,2020):
    if not i in leap_years:
        start+=365
        pre[i]=precip[start:start+365]
    else:
        start+=365
        pre[i]=precip[start:start+366]
        <b>start+=1</b>

您可以将其简化为

start = 0
for i in np.arange(1982, 2020):
    days_in_year = 365 if i not in leap_years else 366
    # days_in_year = 365 + int(i in leap_years)
    pre[i] = precip[start:start+days_in_year]
    start += days_in_year