
[code]

    YEAR_BEGIN = [1971,1979,1948]
    YEAR_END = 2016
    
    VAR_list = {0:'sst', 1:'precip',2:'air'}
    
    for ivar in [i]:
    
        VAR = VAR_list[ivar]
        print('Variable',ivar,VAR)
    
        if VAR == 'precip':
            filei1 = DIR0 + VAR + '.mon.mean'+ '.nc'   
        elif VAR == 'sst':
            filei1 = DIR0 + VAR + '.mon.mean.nc'
        elif VAR == 'air':
            filei1 = DIR0 + VAR + '.mon.mean.nc'
        else:
    　　　　 pass
    
    
        clim_ref_year = 1981
    
        if ivar = 1
            1971
        elif ivar= 2
            1979
        else:
            1948
    timeskip = (clim_ref_year - YEAR_BEGIN[ivar]) * nman -1
    
[/code]

VAR_listのループをまわしてそれぞれにYEAR_BEGINを割り振りたいのですがうまくいきません。解決案はございますか？


CC BY-SA 4.0
2019-06-08T09:39:51.847
55635
2019-07-29T05:08:55.980
2019-07-29T05:08:55.980
19110
32610
question
python python3
入門的なループ処理について


おそらく実行してみると、forループのところの「'i'が定義されていません。」とエラーが出ると思います。

forループをリストの要素で順番に回すときの基本文法を確認して、コードを書き直した方がいいと思います。  
（VAR_list は辞書ですが、これもイテラブルなので、ループで回せます）

回答ではありませんが、回答へのきっかけになればと思います。


CC BY-SA 4.0
2019-07-29T03:05:08.430
57000
2019-07-29T03:05:08.430
34891
55635
answer


提示されているコードに不明点が多すぎたので、最後に記載されている↓の部分のみ回答します。

> VAR_listのループをまわしてそれぞれにYEAR_BEGINを割り振りたいのですがうまくいきません。解決案はございますか？

こちらに関しては、MorningMushroomさんが記載されている通り、そのままforで回せますが、items()を使用することでkeyとvalueが同時に取得できるためより良いかと思います。

[code]

    YEAR_BEGIN = [1971,1979,1948]
    VAR_list = {0:'sst', 1:'precip',2:'air'}
    
    for k, v in VAR_list.items():
        clim_ref_year = YEAR_BEGIN[k]
    
[/code]


CC BY-SA 4.0
2019-07-29T03:54:05.430
57003
2019-07-29T03:54:05.430
13022
55635
answer