タプルをやる。
最終目標
- タプルを理解する。
- タプルの基本的操作を覚える。
タプルとは
複数のオブジェクトを保持することができるリストやディクショナリに似たオブジェクト(コレクション)。
リストやディクショナリに似ているが、immutable。またリストやディクショナリと違ってメソッドを保持しない。カテゴリは「シーケンス」。
つまり、柔軟性のないリスト。
タプルの基本的操作
タプルの基本的操作を以下に列挙する。
操作 | 説明 |
---|---|
() | 空タプルの生成 |
t1 = (0,) | 要素を1つだけ含むタプルの生成(カンマに注意) |
t2 = (0,1,2,3) | 4つの要素を含むタプルの生成 |
t2 = 0, 1, 2, 3 | 4つの要素を含むタプルの生成 |
t3 = ('a', ('b', 'c')) | ネスト |
t1[0] | インデクシング |
t3[1][2] | インデクシングのインデクシング |
len(t1) | 長さ |
t1 + t2 | 連結 |
t1 * 100 | 繰り返し |
for x in t2 | ループ |
x in t2 | 特定の要素が含まれているかの確認 |
ひとつの要素を生成する場合には、「(0,)」と要素の後ろにカンマを入れなければいけないらしい。
実際にやってみる。
>>> t1 = (0)
>>> t1
0
>>> t1[0]
Traceback (most recent call last):
File "", line 1, in ?
TypeError: unsubscriptable object
カンマを入れないとt1[0]で参照できない。カンマを入れない場合は上記の場合整数として扱われる。
>>> t1 = (0,)
>>> t1[0]
0
>>> t1
(0,)
カンマを入れるとタプルとして生成され、t1[0]でも参照できる。
だれが見てもタプルであるとわかれば、()は必ずしも書かなくてよい。
>>> t1 = (1,2,3)
>>> t1
(1, 2, 3)
>>> t1 = 1,2,3
>>> t1
(1, 2, 3)
連結や繰り返し、インデクシングやスライシングなんかもリストと同じように行える。
>>> t1 = (1,2,3)
>>> t2 = (4,5,6)
>>> t1 + t2
(1, 2, 3, 4, 5, 6)
>>> t1 *4
(1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> t1[2]
3
>>> t3 = t1 + t2
>>> t3
(1, 2, 3, 4, 5, 6)
>>> t3[2:4]
(3, 4)
タプルはimmutableなので変更できない。ソートなどをしたい場合はいったんリストに変換する。
>>> t3 = (6,5,5,3,6)
>>> t3
(6, 5, 5, 3, 6)
>>> L1 = list(t3)
>>> L1
[6, 5, 5, 3, 6]
>>> L1.sort()
>>> L1
[3, 5, 5, 6, 6]
>>> T = tuple(L1)
>>> T
(3, 5, 5, 6, 6)
タプルからリストに変換するにはlist()関数を使用し、リストからタプルに変換するにはtuple関数を使用する。
まとめ
- タプルはリストやディクショナリに似たオブジェクト。
- タプルはimmutableで変更できない。
- リストに似た操作を行える。
.
0 コメント:
コメントを投稿