19日に更新してた

アフィリエイトはないよ

a, b, c = range(3) ってエラーにならないのをはじめて知った。python3.8

python を使ってみよう」と思いついて、勢いでネットで検索しまくって試行錯誤で python3 を学習してきました。

なので、最近になって一応解説本を読んではいるのですが「わかってる、わかってる」で飛ばしまくっているので、ごくごく基本的なことを知らなかったりすることがよくあります。

文法*1のネットでの解説などを眺めているとあったのが

a, b = map(int,"1 2".split())

これ、エラーでないんだと最近はじめて知りました。

イテラブルなものは直接変数に置き換えられるってこと?

変数に置き換えは

a, b = list(map(int,"1 2".split()))
#or
a, b = [*map(int,"1 2".split())]
#or
a, b = [int(i) for i in "1 2".split()]

みたいにリストでないといけないと思っていたのでした。

となると、

a, *b = map(int,"1 2 3".split())

が成り立つのはわかります。で、

a, b, c = range(3)
d, *e = range(3)

でもいけるのかと試してみたら、両方ともいけますね。*2

当たり前のことなんでしょうけれど、ちょっと発見した気分で嬉しい。

import sys
sys.version

#3.8.13 | packaged by conda-forge | (default, Mar 25 2022, 05:59:45) [MSC v.1929 64 bit (AMD64)]

*1:競プロ?

*2:すぐに出てくるリストでないイテラブルがこれだけでした。