

以下のようなコードで、a1,a2,a3,b1,b2,b3 の6行をより短く変数を定義したいのですが、何かいい方法はありますか？ `.format()`
が使えるかと思ったのですが、うまくいきませんでした。

[code]

    a1 = 1
    a2 = 2
    a3 = 3
    b1 = a1**2
    b2 = a2**2
    b3 = a3**2
    
[/code]


CC BY-SA 4.0
2021-11-29T19:09:00.233
83875
2021-11-30T06:44:36.067
2021-11-30T00:18:25.347
3060
39563
question
python
似たような変数にまとめて値を代入する方法


リストにすると良いかと思います。

[code]

    a = [1, 2, 3]
    b = [i**2 for i in a]
    
[/code]


CC BY-SA 4.0
2021-11-29T21:50:15.270
83876
2021-11-29T21:50:15.270
3475
83875
answer


Python 3.8 以降であればセイウチ演算子(walrus operator)を使って以下の様に。

[code]

    b1, b2, b3 = (a1:=1)**2, (a2:=2)**2, (a3:=3)**2
    
[/code]

※ お勧めはしません


CC BY-SA 4.0
2021-11-30T00:08:58.847
83878
2021-11-30T00:08:58.847
47127
83875
answer


`a*`の変数にはそれぞれの値を, `b*`の変数には共通の計算式を  
与えるなら, こんな風

[code]

    >>> a1,a2,a3 = 1,2,3
    >>> b1,b2,b3 = [n**2 for n in(a1,a2,a3)]
    
[/code]

* * *

#### 追記

(項目が多い場合など)ひとまとめのセット用いるなら, こんな風にも

[code]

    vals = a1,a2,a3 = 1,2,3
    b1,b2,b3 = [n**2 for n in vals]
    
[/code]


CC BY-SA 4.0
2021-11-30T02:22:40.133
83884
2021-11-30T06:44:36.067
2021-11-30T06:44:36.067
43025
43025
83875
answer