Pythonのタプル
JavaやJavaScriptにはないため、はじめての人にとっては混乱しやすいタプルについてまとめてみました。
タプルのリストと異なる特徴は要素の追加や変更をすることが出来ないところです。そのため要素の中身を変更されたくない場合などに活用されます。
タプルの宣言方法
t = (1,2,3,4,) print(type(t),t) #<class 'tuple'> (1, 2, 3, 4) #()をつけなくてもタプルとして宣言することが出来る t = 1,2,3,4 print(type(t),t) #<class 'tuple'> (1, 2, 3, 4)
タプルがタプルとして認識されるのは「,」が付いているかどうかです。反対に「,」が付くことでタプルとみなされバグにつながる恐れがあるため注意する。
t = 1 print(type(t)) #<class 'int'> t= 1, print(type(t)) #<class 'tuple'> t = t +1 #TypeError: can only concatenate tuple (not "int") to tuple
前述したようにタプルには値の追加や変更をすることが出来ない。しかし、タプル同士を結合することはできる。
t = (1,2,3,4) t.append(9) #AttributeError: 'tuple' object has no attribute 'append' t[0] = 0 #'tuple' object does not support item assignment n = (5,6,7,8) new_tuple = t + n print(new_tuple) #(1, 2, 3, 4, 5, 6, 7, 8)
タプルのアンパッキング
タプルの中身を変数に分解することをアンパッキングという。この機能の便利なところは一度に複数の変数を宣言できること。しかし、タプルによる過度な変数宣言は可読性が低下するため気を付ける。
num_tuple = (1,2) print(num_tuple) #(1, 2) x,y = num_tuple print(x,y) #1 2 #二つの変数を一度に宣言することができる x,y = 10,20 print(x,y) #10 20 #二つの変数の値を入れ替えるのにも活用できる y,x =x,y print(x,y) #20 10 #以下のような変数の宣言はどの変数にどの値が入っているかがわかりにくいため避ける a,b,c,d,e,f = "Mike","Lucy","Nick"."Backy","Stieve","Tony"
以上