Python タプル: 例を含む包括的なガイド

Patricia Arquette
リリース: 2024-10-11 10:22:02
オリジナル
841 人が閲覧しました

Python Tuples: A Comprehensive Guide with Examples

Python では、タプルはリスト、セット、辞書と並ぶ 4 つの組み込みデータ構造の 1 つです。タプルは要素の不変で順序付けられたコレクションです。これは、タプルが作成されると、その要素を変更、追加、または削除できないことを意味します。タプルは、値のコレクションがプログラム全体を通じて一定であることを保証したい場合に特に便利です。

タプルの主な特徴

  • 不変: タプルの要素は作成後に変更できません。
  • 順序付け: タプルは要素の順序を維持します。つまり、最初の要素は最初の位置に留まり、2 番目の要素は 2 番目の位置に留まり、以下同様になります。
  • 重複を許可します: タプルには同じ要素が複数含まれることができます。
  • 異種データのサポート: タプルは、整数、文字列、さらにはリストや辞書などの他のデータ構造など、さまざまなデータ型の要素を格納できます。

タプルの作成方法

タプルは、要素を括弧 () で囲み、カンマで区切ることによって作成されます。いくつかの例を見てみましょう:

例 1: 単純なタプルの作成

my_tuple = (1, 2, 3)
print(my_tuple)
ログイン後にコピー

出力:

(1, 2, 3)
ログイン後にコピー

上記の例では、3 つの整数要素を含むタプルを作成しました。

例 2: データ型が混在したタプルの作成

タプルは、文字列、整数、浮動小数点数、さらには他のタプルやリストなど、さまざまな型の要素を保持できます。

mixed_tuple = (1, "Hello", 3.5)
print(mixed_tuple)
ログイン後にコピー

出力:

(1, 'Hello', 3.5)
ログイン後にコピー

このタプルには、整数、文字列、および浮動小数点数が含まれています。

例 3: 括弧なしのタプルの作成

興味深いことに、括弧を使用せずに値をカンマで区切るだけでタプルを作成できます。

tuple_without_parentheses = 10, 20, 30
print(tuple_without_parentheses)
ログイン後にコピー

出力:

(10, 20, 30)
ログイン後にコピー

ただし、括弧を使用するとコードが読みやすくなるため、これを使用することをお勧めします。

タプル内の要素へのアクセス

タプルは順序付けされているため、インデックス位置を使用してタプル内の要素にアクセスできます。 Python でのインデックス付けは 0 から始まるため、最初の要素のインデックスは 0、2 番目の要素のインデックスは 1 というようになります。

例 4: インデックスによるタプル要素へのアクセス

my_tuple = (10, 20, 30, 40)
print(my_tuple[1])  # Output: 20
print(my_tuple[3])  # Output: 40
ログイン後にコピー

例 5: タプルのスライス

タプルをスライスして要素の範囲にアクセスできます。これは、構文 tuple[start:end] を使用して行われます。ここで、start は開始インデックス (両端を含む)、end は終了インデックス (両端を含みます) です。

my_tuple = (10, 20, 30, 40, 50)
print(my_tuple[1:4])  # Output: (20, 30, 40)
ログイン後にコピー

この例では、タプルをスライスしてインデックス 1 から 3 までの要素を抽出しました。

タプルの解凍

タプルのアンパックを使用すると、1 回の操作でタプルの要素を個々の変数に割り当てることができます。

例 6: タプルのアンパック

my_tuple = (1, 2, 3)
a, b, c = my_tuple
print(a)  # Output: 1
print(b)  # Output: 2
print(c)  # Output: 3
ログイン後にコピー

タプルのアンパックは、タプルの個々の要素を操作する必要がある場合に特に便利です。

入れ子になったタプル

リストと同様に、タプルもネストできます。これは、タプルには他のタプル、あるいはリストや辞書などの他のデータ構造を含めることができることを意味します。

例 7: ネストされたタプル

nested_tuple = (1, (2, 3), [4, 5])
print(nested_tuple)
ログイン後にコピー

出力:

(1, (2, 3), [4, 5])
ログイン後にコピー

この例では、タプルには整数、別のタプル、およびリストが含まれています。

タプルの不変性

タプルの重要な特徴は、タプルが不変であることです。つまり、既存のタプルの値を変更することはできません。タプルの要素を変更しようとすると何が起こるかを見てみましょう:

例 8: タプルは不変です

my_tuple = (1, 2, 3)
my_tuple[0] = 10  # This will raise an error
ログイン後にコピー

エラー:

TypeError: 'tuple' object does not support item assignment
ログイン後にコピー

上に示したように、タプルを作成した後は、その要素に新しい値を割り当てることはできません。

タプルを使用する利点

  • 不変性: タプルは変更できないため、データが一定のままであることを保証する方法を提供します。これにより、座標、構成、レコードなどの固定データに適しています。
  • アクセスの高速化: タプルは、特に大規模なデータ コレクションを操作する場合、パフォーマンスの点でリストよりも高速です。
  • メモリ効率が高い: タプルは不変であるため、リストよりもメモリ効率が高くなります。

一般的なタプル操作

タプルに対して実行できる基本的な操作をいくつか示します:

1. Concatenation: You can concatenate two or more tuples using the + operator.

tuple1 = (1, 2)
tuple2 = (3, 4)
result = tuple1 + tuple2
print(result)  # Output: (1, 2, 3, 4)
ログイン後にコピー

2. Repetition: You can repeat a tuple using the * operator.

my_tuple = (1, 2)
result = my_tuple * 3
print(result)  # Output: (1, 2, 1, 2, 1, 2)
ログイン後にコピー

3. Membership: You can check if an element exists in a tuple using the in operator.

my_tuple = (1, 2, 3)
print(2 in my_tuple)  # Output: True
print(4 in my_tuple)  # Output: False
ログイン後にコピー

4. Length: You can find the length of a tuple using the len() function.

my_tuple = (1, 2, 3)
print(len(my_tuple))  # Output: 3
ログイン後にコピー

Conclusion

Tuples are a powerful and efficient data structure in Python, particularly when you need to work with immutable collections of items. They are ideal for cases where you want to ensure that the data does not change throughout your program. With the ability to store heterogeneous data, support for slicing, tuple unpacking, and other useful operations, tuples offer a versatile way to organize and manage data in Python.

By understanding how tuples work and how to use them effectively, you can write cleaner, more efficient, and more secure Python code.

以上がPython タプル: 例を含む包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート