Python TUPLE – パック、アンパック、比較、スライス、削除、キー

⚡ スマートサマリー

Python タプルとは、括弧で囲まれた値の順序付き不変の集合です。以下の例では、タプルのパッキングとアンパッキング、タプルの比較、辞書のキーとしてのタプルの使用、削除、スライス、そしてリストに対するタプルの利点について説明します。

  • 📦 定義: タプルとは、括弧を用いて作成される、順序付けられた不変の集合です。
  • 🔁 梱包/開梱: 値をタプルにグループ化し、tracそれらを変数に戻します。
  • <XNUMXxEXNUMX><XNUMXxEXNUMX><XNUMXxXNUMXA><XNUMXxXNUMX><XNUMXxXNUMXA>️️ 比較: タプルは、左から右へ要素ごとに比較されます。
  • 🔑 辞書キー: タプルはハッシュ可能であるため、複合辞書のキーとして機能させることができます。
  • ✂️ スライス: スライス表記を使用してタプルからサブ要素を取得します。
  • 🚀 Advantages: タプルはリストに比べて高速で、書き込み保護機能も備えています。

Python タプル

タプルマッチングとは Python?

タプルマッチング Python グループ化の方法ping タプルの2番目の要素を照合することでタプルを生成できます。これは、Pythonプログラミングで辞書を使用して各タプルの2番目の要素をチェックすることで実現されます。ただし、既存のタプルの一部を取り出して新しいタプルを作成することもできます。

タプル構文

Tup = ('Jan','feb','march')

空のタプルを記述するには、何も含まない XNUMX つの括弧として記述する必要があります。

tup1 = ();

単一値のタプルを記述する場合は、値が XNUMX つであっても、カンマを含める必要があります。 また、以下のように最後にセミコロンを記述する必要があります。

Tup1 = (50,);

タプルのインデックスは 0 から始まり、連結したり、スライスしたりすることができます。

タプルの割り当て

Python タプル割り当て機能があり、一度に複数の変数を割り当てることができます。ここでは、名前、姓、生年月日などの人物情報をタプル 1 に割り当て、数値 (2、1,2,3、7、…、XNUMX) などの値をタプル XNUMX に割り当てています。

例えば、

(名前、姓、生まれ年、好きな映画と年、職業、出身地) = ロバート

これがコードです、

tup1 = ('Robert', 'Carlos','1965','Terminator 1995', 'Actor','Florida');
tup2 = (1,2,3,4,5,6,7);
print(tup1[0])
print(tup2[1:4])
  • タプル 1 には Robert の情報のリストが含まれています
  • タプル2には数値のリストが含まれています
  • タプルの [0] の値を呼び、タプル 2 の場合は 1 から 4 までの値を呼びます。
  • コードを実行します。最初のタプルには Robert という名前が与えられ、2,3 番目のタプルには番号 (4、XNUMX、XNUMX) が​​与えられます。

梱包と開梱

パッキングでは、新しいタプルに値を入れますが、アンパッキングでは、tracそれらの値を変数に再度代入する。

x = ("Guru99", 20, "Education")    # tuple packing
(company, emp, profile) = x    # tuple unpacking
print(company)
print(emp)
print(profile)

タプルの比較

比較演算子 Python タプルを扱うことができます。

比較は各タプルの最初の要素から始まります。 =、<、または > と比較できない場合は、XNUMX 番目の要素などに進みます。

各タプルの最初の要素を比較することから始まります。

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

#ケース1

a=(5,6)
b=(1,4)
if (a>b):print("a is bigger")
else: print("b is bigger")

#ケース2

a=(5,6)
b=(5,4)
if (a>b):print("a is bigger")
else: print ("b is bigger")

#ケース3

a=(5,6)
b=(6,4)
if (a>b):print("a is bigger")
else: print("b is bigger")

ケース1: 比較は各タプルの最初の要素から始まります。 この場合、5>1 なので、出力 a の方が大きくなります。

ケース2: 比較は各タプルの最初の要素から始まります。 この場合は 5>5 であり、決定的ではありません。 したがって、次の要素に進みます。 6>4 なので、出力 a の方が大きくなります

ケース3: 比較は各タプルの最初の要素から始まります。 この場合、5>6 は false です。 したがって、else ブロックに入り、「b の方が大きい」と出力されます。

タプルを辞書のキーとして使用する

タプルはハッシュ可能ですが、リストはハッシュ可能ではないため、辞書で使用する複合キーを作成する必要がある場合は、キーとしてタプルを使用する必要があります。

例:: 名、姓、電話番号のペアなどをマップする電話帳を作成する必要がある場合、複合キーに遭遇することになります。変数を姓と名として宣言したと仮定すると、次に示すように辞書割り当てステートメントを記述できます。

directory[last,first] = number

括弧内の式はタプルです。この辞書をナビゲートするには、for ループでタプル割り当てを使用できます。

for last, first in directory:
print first, last, directory[last, first]

このループは、ディレクトリ内のキー (タプル) をナビゲートします。 各タプルの要素を last と first に割り当て、名前と対応する電話番号を出力します。

タプルと辞書

ディクショナリは、項目を呼び出すことによってタプルのリストを返すことができます。各タプルはキーと値のペアです。

a = {'x':100, 'y':200}
b = list(a.items())
print(b)

タプルの削除

タプルは不変であり、削除できません。 タプルから項目を削除したり削除したりすることはできません。 ただし、キーワードを使用するとタプル全体を削除できます。

del

タプルのスライス

タプルまたはリストからサブ要素の特定のセットをフェッチするには、スライスと呼ばれるこの独自の関数を使用します。 スライスはタプルだけでなく配列やリストにも適用できます。

x = ("a", "b","c", "d", "e")
print(x[2:4])

このコードの出力は ('c', 'd') になります。

ここにある Python 2 Code 上記の例すべてについて

tup1 = ('Robert', 'Carlos','1965','Terminator 1995', 'Actor','Florida');
tup2 = (1,2,3,4,5,6,7);
print  tup1[0]
print  tup2[1:4]

#Packing and Unpacking
x = ("Guru99", 20, "Education")    # tuple packing
(company, emp, profile) = x    # tuple unpacking
print company
print emp
print profile

#Comparing tuples
#case 1
a=(5,6)
b=(1,4)
if (a>b):print "a is bigger"
else: print "b is bigger"

#case 2
a=(5,6)
b=(5,4)
if (a>b):print "a is bigger"
else: print "b is bigger"

#case 3
a=(5,6)
b=(6,4)
if (a>b):print "a is bigger"
else: print "b is bigger"

#Tuples and dictionary
a = {'x':100, 'y':200}
b = a.items()
print b 

#Slicing of Tuple
x = ("a", "b","c", "d", "e")
print x[2:4]

タプルを使用した組み込み関数

タプルでは、​​さまざまなタスクを実行するために、all()、any()、enumerate()、max()、min()、sorted()、len()、tuple() などの多くの組み込み関数を使用できます。

リストに対するタプルの利点

  • タプルは不変であるため、タプルの反復処理はリストの場合よりも高速です。
  • 不変要素で構成されるタプルは、リストでは不可能な辞書のキーとして使用できます。
  • 不変のデータがある場合、それをタプルとして実装すると、書き込み保護された状態が保証されます。

よくあるご質問

タプルは不変で括弧で囲んで記述しますが、リストは可変で角括弧で囲んで記述します。タプルは高速で辞書のキーとして使用できますが、リストは項目の追加、削除、変更が必要な場合に適しています。

いいえ。タプルは不変なので、作成後に要素を変更、追加、削除することはできません。変更が必要な場合は、新しいタプルを作成するか、タプルをリストに変換して変更し、再びタプルに変換してください。

値の後に末尾のカンマを追加します。例: t = (50,)。カンマがない場合、 Python 括弧を通常のグループとして扱いますping そして、これはタプルではなく整数を作成します。カンマがあることで、要素が1つのタプルになります。

リストをタプルに変換するには、tuple() 関数を使用します。例えば、tuple([1, 2, 3]) のように使用します。逆に、リストをタプルに変換するには、タプルに対して list() 関数を使用します。変換は、通常は固定されているデータを一時的に変更する必要がある場合に便利です。

はい。タプルは文字列、整数、浮動小数点数など、さまざまな型を混在させることができ、他のタプルやリストを含めることもできます。ネストされたタプルを使用すると、各位置に明確な意味を持つ行、座標、またはレコードをモデル化できます。

collectionsモジュールに含まれる名前付きタプルは、各位置に名前を付けることで、インデックスではなくラベルでフィールドを読み取ることができるようにします。これにより、タプルの不変性と速度を維持しつつ、軽量クラスのようにコードの可読性を大幅に向上させることができます。

タプルは、配列の形状、座標、データセットのレコードなど、固定された順序付きデータを格納します。NumPyやpandasなどのライブラリは、形状やインデックスキーにタプルを使用します。タプルの不変性により、機械学習データは意図しない変更を受けることなく安全に受け渡されます。

はい。これらのAIアシスタントは、平易な英語のプロンプトからタプルのパッキング、アンパッキング、スライスに関するコードを生成し、各行の説明を提供します。また、リストよりもタプルの方が適している場合も提案します。生成されたコードは、使用する前に必ず確認し、テストしてください。