タプルがやっぱりまだ分からない
Haskellの時でも分からなかったタプル
タプル=組これは分かるのです
オブジェクトとインデックスが組になってるんですよね?
そこでいろいろ試してみました
>>> t = (y,u,k,k,y) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'y' is not defined
なるほど文字はシングルコーテーションでくくって下さいってことですね
キーとして使うからかな?
良く分からないけどまぁ後で聞くとして・・・
>>> t = ('y','u','k','k','y') >>> t ('y', 'u', 'k', 'k', 'y') >>> t[2:4] ('k', 'k') >>> t[0:4] ('y', 'u', 'k', 'k') >>> t2 = (1,2,3,4,5) >>> t2 (1, 2, 3, 4, 5) >>> t3 = t + t2 >>> t3 ('y', 'u', 'k', 'k', 'y', 1, 2, 3, 4, 5) >>> t4 = t2 + t >>> t4 (1, 2, 3, 4, 5, 'y', 'u', 'k', 'k', 'y') >>> t5 = t2 + (100,1000,10000) >>> t5 (1, 2, 3, 4, 5, 100, 1000, 10000)
コレでスライスが使える事とタプル同士の足し算ができるけど
内容は変わらずに連結しただけだという事が分かります
では足し算が出来るなら掛け算もできそうなので試してみました
>>> t6 = t*3 >>> t6 ('y', 'u', 'k', 'k', 'y', 'y', 'u', 'k', 'k', 'y', 'y', 'u', 'k', 'k', 'y')
では次は要素の追加と削除
>>> t[3] = 'python' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> t ('y', 'u', 'k', 'k', 'y') >>> del t[4] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object doesn't support item deletion >>> t ('y', 'u', 'k', 'k', 'y')
要素の追加削除などは出来ないし内容も変わらない
とりあえず今分かっているタプルの特徴は
インデックスで要素を管理 スライスを使って複数の要素を指定して取り出せる 足し算と掛け算が出来る 要素の追加&要素の削除が出来ない
こんな感じでしょうか
最後にリストとタプルは型変換が出来るようなのでチェック
>>> t = ('y','u','k','k','y') >>> t ('y', 'u', 'k', 'k', 'y') >>> a = list(t) >>> a ['y', 'u', 'k', 'k', 'y'] >>> tt = tuple(a) >>> tt ('y', 'u', 'k', 'k', 'y')
型変換は結構苦手なのでコツコツ頑張りますが
今回は楽に型変換が出来たので嬉しいな♪
もしタプルに要素を追加したかったら1回リストに型変換してから
要素を追加してまたタプルに戻すってのもありかなと思いました
削除の場合も同じですよね☆
けどやっぱりタプルどんな時に使うの〜?とか利点とかは
まだまだ分からないです・・・