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



我有一个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]
start+=1

您可以将其简化为

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

最新更新