Python タプル: 不変シーケンスとアンパック
Python タプルを理解します。リストではなくタプルをいつ使用するか、タプルのアンパックがどのように機能するか、不変性によってデータの安全性がどのように保証されるかを学びます。
概要
タプルは、Python における順序付けされた不変の要素のシーケンスです。角括弧「[]」で囲まれ変更可能なリストとは異なり、タプルは括弧「()」で囲まれており、作成後に変更することはできません。タプル内の要素を追加、追加、削除、または再割り当てしようとすると、実行時エラーが発生します。この不変性は安全機能として機能し、アプリケーション内で渡されるデータが一定かつ安全に保たれることを保証します。
タプルは不変であるため、リストよりも高速で、使用するメモリも少なくなります。また、ハッシュ可能であるため (タプル内のすべての要素がハッシュ可能である場合)、辞書内のキーまたはセット内の要素として使用できます。この機能リストはサポートしていません。タプルは伝統的に、データベース行、座標、または RGB カラー値を表すなど、異種データ レコードをグループ化するために使用されます。
タプルの最もエレガントな機能の 1 つは、タプルのアンパッキングです。これにより、タプルの要素を 1 行で個々の変数に割り当てることができます (例: `x, y = 座標`)。関数から複数の値を返す場合によく使用されます。 Python では、一時的な 3 番目の変数を必要とせずに、アンパック (`a, b = b, a`) を使用して変数を動的に交換することもできるため、コードが大幅にクリーンになり、理解しやすくなります。
コードと実行の出力
タプルとして座標を作成し、不変性の制限を示し、要素を解凍します。
# Creating tuples
location = (40.7128, -74.0060) # NYC Coordinates
print(f"Latitude: {location[0]}, Longitude: {location[1]}")
# Tuple unpacking
lat, lon = location
print(f"Unpacked Lat: {lat} | Unpacked Lon: {lon}")
# Function returning multiple values
def get_user_info():
return "Alice", 25, "admin"
name, age, role = get_user_info()
print(f"{name} ({role}) is {age} years old.")Latitude: 40.7128, Longitude: -74.006
Unpacked Lat: 40.7128 | Unpacked Lon: -74.006
Alice (admin) is 25 years old.段階的な実装
- ヘルパー関数から複数の値をきれいに返す
- 座標、色、データベース レコードなどの定数の保存
- 多次元マッピング用の不変辞書キーの定義
よくある質問
単一の要素を持つタプルを定義するにはどうすればよいですか?
要素の後に末尾のカンマを含める必要があります (single_item = (42,) など)。カンマがないと、Python はそれを標準のかっこで囲まれた式として扱います。
タプル内にネストされたリストを変更できますか?
はい。タプル参照自体は不変ですが、リストなどの変更可能なオブジェクトが含まれている場合は、それらのリストの内容をその場で変更できます。
関連トピック
推奨される Python リソース
関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。
Python でリストを並べ替える方法
sort() メソッドとsorted() 関数を使用して、Python でリストを並べ替える方法を学びます。カスタムキーの並べ替えと逆順の例をご覧ください。
Python 文字列メソッドのチートシート
Python 文字列操作の完全なリファレンス ガイド。文字列プロパティの書式設定、検索、分割、置換、チェックをマスターします。
Python と JavaScript: どちらのプログラミング言語が最適ですか?
Python と JavaScript の包括的な比較。構文の違い、パフォーマンス、使用例 (バックエンドとフロントエンド)、およびコーディング例を調べます。