59580


Pythonで

[code]

    global r1 r2 r3
    
[/code]

や

[code]

    return r1 r2 r3
    
[/code]

と宣言する際に

[code]

    global 'r'+ str(i) for i in range(1, 4)
    
[/code]

のようにするとinvalid syntaxになってしまいます。  
回避する良い方法はないでしょうか。  
（この書き方をするとdefの引数を設定してr3 r4 r5 r6のように可変にできると考えているのですが…）


CC BY-SA 4.0
2019-10-08T13:24:28.933
59579
2019-10-08T14:54:22.460
2019-10-08T13:35:58.437
12457
12457
question
python python3
Pythonで連番のオブジェクトを宣言する際の良い書き方について


普通、連番のついた変数名を生成するのは避けて、タプルやリストを使います。これらであれば添え字で自然に連番がつきます。

つまり、こうするのではなく、

[code]

    r1 = "aaa"
    r2 = "bbb"
    r3 = "ccc"
    
[/code]

こうします。

[code]

    result = ("aaa", "bbb", "ccc")
    
    # または
    
    result = ["aaa", "bbb", "ccc"]
    
    # 各要素には result[0], result[1], result[2] として参照できます
    # タプルは長さが決まっているので、今回の例ではタプルの方が向いていそうです
    
[/code]

また、辞書の形にしてもう少し柔軟に名前をつけることもできます。


CC BY-SA 4.0
2019-10-08T14:06:10.730
59580
2019-10-08T14:54:22.460
2019-10-08T14:54:22.460
19110
19110
59579
answer