
37
3.6 代入文
オブジェクトが作成される場合の違いに注意してください。
3.6.2
要素の分解
代入文の左辺に、複数の変数をカンマで区切って指定すると、リストやタプルなど、イテラブル
なオブジェクトの要素を分解して、一度にまとめて代入できます。
>>> spam = [1, 2, 3]
>>> first, second, third = spam
>>> first, second, third
(1, 2, 3)
代入文の左辺は、
[]
か
()
で囲めます。カッコで囲むと、分解した要素をさらに分解して、入れ
子となった要素を一度に代入できます。
>>> (a, [b,c], d) = (1, (2,3), 4)
>>> a, b, c, d
1, 2, 3, 4
左辺の変数の数より、右辺の要素の数が多い場合、左辺に
*
を付けた変数名があれば、右辺の要
素のうち代入先のない要素は一つのリストオブジェクトとしてまとめられ、その変数に代入されま
す。
>>> spam, ham, *egg = 1, 2, 3, 4, 5 # 1
と
2
は
spam
と
ham
に代入され、残りは
egg
へ
>>> spam, ham, egg
1, 2, [3, 4, 5]
>>> spam, *ham, egg = 1, 2, 3, 4, 5 # 1
と
5
は
spam
と
egg
に代入され、残りは
ham
へ
>>> spam, ham, egg
1, [2, 3, 4], 5
>>> *spam, ham, egg = 1, 2, 3, 4, 5 # 4
と
5
は
ham ...