タプルは不変。リストは可変。
ただし、タプルの要素に可変の型を格納することは可能。
t = ([1,2,3],[4,5,6])
print(t)#([1, 2, 3], [4, 5, 6])
タプル内のリストの変更も可。
t = ([1,2,3],[4,5,6])
t[1].append(7)
print(t)#([1, 2, 3], [4, 5, 6, 7])
パック・アンパック
t = 123,456
print(t)#(123, 456)
123
,456
を1つのタプルにまとめている。これをパックという。
x,y = t
print(x)#123
print(y)#456
パックとは逆の処理。タプルt
を、展開し、それぞれ変数x
,y
に代入している。これをアンパックという。※左辺の変数の数と右辺のシーケンスの長さが同じでなければならない。
t = 12345,54321
u = t,(1,2,3,4,5)
print(u)
このような複数同時代入の場合、
t
のアンパック
と、
t
と(1,2,3,4,5)
のパック
の両方を行っている。
参考:Guido van Rossum.Python チュートリアル.O'REILLY,第5章