Python では、いつリストを使用し、いつタプルを使用すればよいのでしょうか?
時には選択肢がないこともあります。例えば、
"hello %s you are %s years old" % x
x はタプルである必要があります。
しかし、API を設計し、データ型を選択する場合、ガイドラインは何でしょうか?
ベストアンサー1
タプル本質的には固定サイズですがリストは動的です。
つまり、 atuple
は不変ですが、 alist
は可変です。
- タプルに要素を追加することはできません。タプルには append メソッドや extend メソッドがありません。
- タプルから要素を削除することはできません。タプルには、remove メソッドや pop メソッドはありません。
- タプルは変更されないので、タプル内の要素を見つけることができます。
in
演算子を使用して、タプル内に要素が存在するかどうかを確認することもできます。
タプルはリストよりも高速です。定数の値セットを定義し、それを反復処理するだけの場合は、リストではなくタプルを使用します。
変更する必要のないデータを「書き込み保護」すると、コードがより安全になります。リストの代わりにタプルを使用すると、このデータは定数であるという暗黙の assert ステートメントが存在するのと同じで、それをオーバーライドするには特別な考慮 (および特定の関数) が必要になります。
一部のタプルは辞書のキーとして使用できます (具体的には、文字列、数値、その他のタプルなどの不変の値を含むタプル)。リストは変更可能であるため、辞書のキーとして使用することはできません。
ソース:Python 3 に飛び込む