🐍
【Python】リストとタプルって何が違うん?
はじめに
Pythonには配列データとして、リスト(List)とタプル(Tuple)がある。
初学者の僕にとっては、結局何が違うんこいつら、、、って感じです。笑
そこで初学者の僕なりに、”何が違うのか”、”どうやって使い分けるのか”についてまとめていきたいと思います。
リストとタプルの違いを一言で
それぞれの違いを一言でまとめると、
- リスト:動的な配列。値や要素数の変更が可能。
- タプル:静的な配列。値や要素数は固定で変更不可。
です。
とりあえずこれくらい理解していれば大丈夫そうな気がしますが、もっと深ぼって書いていきたいと思います。
リストについて
リストは動的な配列なので以下のように要素の変更・追加等を行うことができます。
list = [5, 8, 1, 3, 2, 6]
print(list)
#[5, 8, 1, 3, 2, 6]
list[2] = 10
print(list)
#[5, 8, 10, 3, 2, 6]
print(len(list))
#6
list.append(32)
print(list)
#[5, 8, 10, 3, 2, 6, 32]
print(len(list))
#7
タプルについて
タプルはリストと違い、一度作ると、変更や追加ができません。
tuple = (1, 2, 3, 4)
tuple[0] = 5
#TypeError: 'tuple' object does not support item assignment
以下のように、タプル同士を結合して新たなタプルを作ることはできます。
tuple1 = (0, 1, 2)
tuple2 = (3, 4, 5, 6)
print(tuple1 + tuple2)
#(0, 1, 2, 3, 4, 5, 6)
リストとタプルの使い分け
いくつかのデータを例に、どのように使い分けるか考えていきます。
データ | リストorタプル | 理由 |
---|---|---|
素数の最初の20個 | タプル | データが変化しないから |
ある人の年齢、身長、体重 | リスト | 値が変わる可能性があるから |
あるゲームの結果一覧 | タプル | 一度出た結果は変わらないから |
ユーザーへのアンケートの選択肢 | タプル | 選択肢が変わることはないから |
プログラミング言語の名前 | リスト | データが増える可能性があるから |
他にもたくさんの例が考えられますが、「要素が変わる可能性があるか?」を基準に使い分ければ、問題なさそうです。
まとめ
- 変更の可能性があるデータ → リスト
- 変更の可能性がないデータ → タプル
前述した通り、「要素が変わる可能性があるか?」を基準に使い分けていけば問題なさそうです。
Discussion