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

```

    a1 = 1
    a2 = 2
    a3 = 3
    b1 = a1**2
    b2 = a2**2
    b3 = a3**2
    
```
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
似たような変数にまとめて値を代入する方法
リストにすると良いかと思います。

```

    a = [1, 2, 3]
    b = [i**2 for i in a]
    
```
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)を使って以下の様に。

```

    b1, b2, b3 = (a1:=1)**2, (a2:=2)**2, (a3:=3)**2
    
```

※ お勧めはしません
CC BY-SA 4.0
2021-11-30T00:08:58.847
83878
2021-11-30T00:08:58.847
47127
83875
answer
`a*`の変数にはそれぞれの値を, `b*`の変数には共通の計算式を  
与えるなら, こんな風

```

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

* * *

#### 追記

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

```

    vals = a1,a2,a3 = 1,2,3
    b1,b2,b3 = [n**2 for n in vals]
    
```
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