Python のタプル

Python タプルは、カンマで区切られたオブジェクトのコレクションです。タプルは、インデックス付け、ネストされたオブジェクト、繰り返しという点で、ある意味 Python リストに似ていますが、両方の主な違いは、変更可能な Python リストとは異なり、Python タプルは不変であることです。

Python タプルの作成

タプルを作成するにはさまざまな方法があります。 パイソン 。それらは次のとおりです。

  • 丸括弧の使用
  • 1つのアイテムで
  • タプルコンストラクター

丸括弧 () を使用してタプルを作成する

タプルを作成するには、() 演算子を使用します。

Python3




var> => (> 'Geeks'> ,> 'for'> ,> 'Geeks'> )> print> (var)>

出力:

('Geeks', 'for', 'Geeks') 

1 つの項目を含むタプルを作成する

Python 3.11 では、タプルを作成する別の方法が提供されます。

Python3




values :> tuple> [> int> |> str> , ...]> => (> 1> ,> 2> ,> 4> ,> 'Geek'> )> print> (values)>

出力:

ここで、上記のスニペットでは、int または str のいずれかで構成されるタプルを保持するvalues という変数を考慮しています。「…」は、タプルが複数の int または str を保持することを意味します。

(1, 2, 4, 'Geek') 

注記: 単一の要素を含むタプルを生成する場合は、要素の後に必ずカンマを追加してください。同じ例を見てみましょう。

Python3




mytuple> => (> 'Geeks'> ,)> print> (> type> (mytuple))> #NOT a tuple> mytuple> => (> 'Geeks'> )> print> (> type> (mytuple))>

出力:

Python のタプル コンストラクター

Tuple コンストラクターを使用してタプルを作成するには、要素をパラメーターとして渡します。

Python3




tuple_constructor> => tuple> ((> 'dsa'> ,> 'developement'> ,> 'deep learning'> ))> print> (tuple_constructor)>

出力:

('dsa', 'developement', 'deep learning') 

タプルの不変とは何ですか?

Python のタプルは次のようになります。 Python リスト しかし完全ではありません。タプルは不変で順序付けされており、値の重複が許可されます。 Python のタプルのいくつかの特徴。

  • 項目を見つけてもタプルは変更されないため、タプル内の項目を見つけることができます。
  • タプルを作成した後は、そのタプルに項目を追加することはできません。
  • タプルは追加または拡張できません。
  • タプルが作成されると、そこから項目を削除することはできません。

これを例で見てみましょう。

Python3




mytuple> => (> 1> ,> 2> ,> 3> ,> 4> ,> 5> )> # tuples are indexed> print> (mytuple[> 1> ])> print> (mytuple[> 4> ])> # tuples contain duplicate elements> mytuple> => (> 1> ,> 2> ,> 3> ,> 4> ,> 2> ,> 3> )> print> (mytuple)> # adding an element> mytuple[> 1> ]> => 100> print> (mytuple)>

出力:

Python タプルは順序付けされており、インデックス値を使用して要素にアクセスできます。また、これらは不変です。つまり、タプル内で一度宣言された要素を追加、削除、変更することはできないため、インデックス 1 に要素を追加しようとすると、エラーが生成されました。

2 5 (1, 2, 3, 4, 2, 3) Traceback (most recent call last): File 'e0eaddff843a8695575daec34506f126.py', line 11, in tuple1[1] = 100 TypeError: 'tuple' object does not support item assignment 

Python タプルの値へのアクセス

Python のタプルでは、​​タプルの要素にアクセスする 2 つの方法が提供されます。

  • 正のインデックスの使用
  • 負のインデックスの使用

Python の正のインデックスを使用したタプルへのアクセス

角括弧を使用すると、Python のタプルから値を取得できます。

Python3




var> => (> 'Geeks'> ,> 'for'> ,> 'Geeks'> )> print> (> 'Value in Var[0] = '> , var[> 0> ])> print> (> 'Value in Var[1] = '> , var[> 1> ])> print> (> 'Value in Var[2] = '> , var[> 2> ])>

出力:

Value in Var[0] = Geeks Value in Var[1] = for Value in Var[2] = Geeks 

負のインデックスを使用してタプルにアクセスする

上記のメソッドでは、Python で値にアクセスするために正のインデックスを使用していますが、ここでは [] 内の負のインデックスを使用します。

Python3




var> => (> 1> ,> 2> ,> 3> )> print> (> 'Value in Var[-1] = '> , var[> -> 1> ])> print> (> 'Value in Var[-2] = '> , var[> -> 2> ])> print> (> 'Value in Var[-3] = '> , var[> -> 3> ])>

出力:

Value in Var[-1] = 3 Value in Var[-2] = 2 Value in Var[-3] = 1 

タプルに関連するさまざまな操作

以下は、Python のタプルに関連するさまざまな操作です。

  • 連結
  • 入れ子
  • 繰り返し
  • スライス
  • 削除中
  • 長さを調べる
  • タプルを使用した複数のデータ型
  • リストからタプルへの変換
  • ループ内のタプル

Python タプルの連結

連結 Python タプルの場合は、プラス演算子 (+) を使用します。

Python3




# Code for concatenating 2 tuples> tuple1> => (> 0> ,> 1> ,> 2> ,> 3> )> tuple2> => (> 'python'> ,> 'geek'> )> # Concatenating above two> print> (tuple1> +> tuple2)>

出力:

(0, 1, 2, 3, 'python', 'geek') 

Python タプルのネスト

Python のネストされたタプルとは、別のタプル内のタプルを意味します。

Python3




# Code for creating nested tuples> tuple1> => (> 0> ,> 1> ,> 2> ,> 3> )> tuple2> => (> 'python'> ,> 'geek'> )> tuple3> => (tuple1, tuple2)> print> (tuple3)>

出力:

((0, 1, 2, 3), ('python', 'geek')) 

反復 Python タプル

タプル内の 1 つの要素から複数の同じ要素のタプルを作成できます。

Python3




# Code to create a tuple with repetition> tuple3> => (> 'python'> ,)> *> 3> print> (tuple3)>

出力:

('python', 'python', 'python') 

上記をカンマなしで試して確認してください。 tuple3 は文字列「pythonpythonpython」として取得されます。

Python でのタプルのスライス

Python タプルのスライスとは、インデックス付け方法を使用してタプルを小さなタプルに分割することを意味します。

Python3




# code to test slicing> tuple1> => (> 0> ,> 1> ,> 2> ,> 3> )> print> (tuple1[> 1> :])> print> (tuple1[::> -> 1> ])> print> (tuple1[> 2> :> 4> ])>

出力:

この例では、タプルをインデックス 1 から最後の要素までスライスしました。 2 番目の print ステートメントでは、逆インデックスを使用してタプルを出力しました。そして 3 番目の print ステートメントでは、インデックス 2 から 4 までの要素を出力しました。

(1, 2, 3) (3, 2, 1, 0) (2, 3) 

注記: Python のスライスでは、指定された終了インデックスは含まれません。

Python でタプルを削除する

この例では、「」を使用してタプルを削除しています。 del' キーワード 。タプルを削除すると NameError が発生するため、出力はエラーの形式になります。

注記: 個々のタプル要素を削除することはできませんが、Del キーワードを使用してタプル全体を削除できます。

Python3




# Code for deleting a tuple> tuple3> => (> 0> ,> 1> )> del> tuple3> print> (tuple3)>

出力:

Traceback (most recent call last): File 'd92694727db1dc9118a5250bf04dafbd.py', line 6, in print(tuple3) NameError: name 'tuple3' is not defined 

Python タプルの長さを調べる

タプルの長さを調べるには、Python の len() 関数を使用し、タプルをパラメータとして渡すことができます。

Python3




# Code for printing the length of a tuple> tuple2> => (> 'python'> ,> 'geek'> )> print> (> len> (tuple2))>

出力:

 2 

タプルを使用した複数のデータ型

Python のタプルは本質的に異種混合です。これは、タプルが複数のデータ型を持つ要素をサポートすることを意味します。

Python3




# tuple with different datatypes> tuple_obj> => (> 'immutable'> ,> True> ,> 23> )> print> (tuple_obj)>

出力:

('immutable', True, 23) 

リストをタプルに変換する

変換できます リスト Python では、tuple() コンストラクターを使用し、リストをパラメーターとして渡してタプルに変換します。

Python3




# Code for converting a list and a string into a tuple> list1> => [> 0> ,> 1> ,> 2> ]> print> (> tuple> (list1))> # string 'python'> print> (> tuple> (> 'python'> ))>

出力:

タプルは、リスト、文字列、セット、または辞書 (キーのみが要素として取得されます) などの単一のパラメーターを受け取り、それらをタプルに変換します。

(0, 1, 2) ('p', 'y', 't', 'h', 'o', 'n') 

ループ内のタプル

次を使用して、単一の要素を含むタプルを作成することもできます。 ループ

Python3




# python code for creating tuples in a loop> tup> => (> 'geek'> ,)> # Number of time loop runs> n> => 5> for> i> in> range> (> int> (n)):> > tup> => (tup,)> > print> (tup)>

出力:

(('geek',),) ((('geek',),),) (((('geek',),),),) ((((('geek',),),),),) (((((('geek',),),),),),)