Python-タプル
前のページ次のページ
タプルは、順序付けられた不変のオブジェクトのコレクションです。タプルは、リストと同様にシーケンスです。タプルとリストの違いは、タプルはリストとは異なり変更できないことと、タプルは括弧を使用するのに対し、リストは角括弧を使用することです。
タプルの作成は、コンマで区切られたさまざまな値を入れるのと同じくらい簡単です。必要に応じて、これらのカンマ区切りの値を括弧で囲むこともできます。たとえば-
tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tup3 = "a", "b", "c", "d";
空のタプルは、何も含まない 2 つの括弧として記述されます −
tup1 = ();
値が 1 つしかない場合でも、単一の値を含むタプルを記述するには、カンマを含める必要があります −
tup1 = (50,);
文字列インデックスと同様に、タプル インデックスは 0 から始まり、スライス、連結などを行うことができます。
タプルの値へのアクセス
タプルの値にアクセスするには、角かっこを使用してスライスし、そのインデックスで使用可能な値を取得します。たとえば-
ライブデモ#!/usr/bin/python tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5, 6, 7 ); print "tup1[0]: ", tup1[0]; print "tup2[1:5]: ", tup2[1:5];
上記のコードが実行されると、次の結果が生成されます-
tup1[0]: physics tup2[1:5]: [2, 3, 4, 5]
タプルの更新
タプルは不変です。つまり、タプル要素の値を更新または変更することはできません。次の例が示すように、既存のタプルの一部を使用して新しいタプルを作成できます-
ライブデモ#!/usr/bin/python tup1 = (12, 34.56); tup2 = ('abc', 'xyz'); # Following action is not valid for tuples # tup1[0] = 100; # So let's create a new tuple as follows tup3 = tup1 + tup2; print tup3;
上記のコードが実行されると、次の結果が生成されます-
(12, 34.56, 'abc', 'xyz')
タプル要素を削除
個々のタプル要素を削除することはできません。もちろん、不要な要素を破棄して別のタプルを作成しても問題はありません。
タプル全体を明示的に削除するには、del を使用します 声明。たとえば-
ライブデモ#!/usr/bin/python tup = ('physics', 'chemistry', 1997, 2000); print tup; del tup; print "After deleting tup : "; print tup;
これにより、次の結果が生成されます。発生した例外に注意してください。これは del tup の後です。 タプルはもう存在しません −
('physics', 'chemistry', 1997, 2000) After deleting tup : Traceback (most recent call last): File "test.py", line 9, in <module> print tup; NameError: name 'tup' is not defined
タプルの基本操作
タプルは、文字列と同じように + および * 演算子に応答します。ここでも連結と繰り返しを意味しますが、結果は文字列ではなく新しいタプルになります。
実際、タプルは、前の章で文字列に対して使用した一般的なシーケンス操作のすべてに対応します −
Python 式 | 結果 | 説明 |
---|---|---|
len((1, 2, 3)) | 3 | 長さ |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 連結 |
('こんにちは!',) * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | 繰り返し |
3 in (1, 2, 3) | はい | メンバーシップ |
(1, 2, 3) の x の場合:x を出力 | 1 2 3 | 反復 |
インデックス作成、スライス、およびマトリックス
タプルはシーケンスであるため、文字列の場合と同じようにタプルのインデックス作成とスライスが機能します。次の入力を想定します-
L = ('spam', 'Spam', 'SPAM!')
Python 式 | 結果 | 説明 |
---|---|---|
L[2] | 「スパム!」 | ゼロから始まるオフセット |
L[-2] | 「スパム」 | 負:右から数える |
L[1:] | ['スパム', 'スパム!'] | スライス フェッチ セクション |
区切り記号なし
これらの短い例に示されているように、カンマで区切られ、識別記号なしで記述された複数のオブジェクトのセット、つまり、リストのブラケット、タプルの括弧などは、デフォルトでタプルになります-
ライブデモ#!/usr/bin/python print 'abc', -4.24e93, 18+6.6j, 'xyz'; x, y = 1, 2; print "Value of x , y : ", x,y;
上記のコードが実行されると、次の結果が生成されます-
abc -4.24e+93 (18+6.6j) xyz Value of x , y : 1 2
組み込みのタプル関数
Python には次のタプル関数が含まれています −
Sr.No. | 説明付き関数 |
---|---|
1 | cmp(tuple1, tuple2) 両方のタプルの要素を比較します。 |
2 | len(タプル) タプルの全長を示します。 |
3 | max(タプル) タプルから最大値のアイテムを返します。 |
4 | min(タプル) 最小値を持つタプルからアイテムを返します。 |
5 | タプル(seq) リストをタプルに変換します。 |
Python