Python-タプル

タプルは、順序付けられて不変のオブジェクトのコレクションです。タプルは、リストと同じようにシーケンスです。タプルとリストの違いは、リストとは異なり、タプルは変更できず、タプルは括弧を使用しますが、リストは角括弧を使用します。

タプルの作成は、異なるコンマ区切りの値を入力するのと同じくらい簡単です。オプションで、これらのコンマ区切りの値を括弧で囲むこともできます。例-

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

空のタプルは、何も含まない2つの括弧として記述されます-

tup1 = ();

単一の値を含むタプルを作成するには、値が1つしかない場合でも、コンマを含める必要があります-

tup1 = (50,);

文字列インデックスと同様に、タプルインデックスは0から始まり、スライス、連結などが可能です。

タプルの値へのアクセス

タプルの値にアクセスするには、1つまたは複数のインデックスとともにスライスするための角括弧を使用して、そのインデックスで使用可能な値を取得します。例-

#!/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インチ(1、2、3) 本当 メンバーシップ
(1、2、3)のxの場合:印刷x、 1 2 3 反復

インデックス作成、スライス、およびマトリックス

タプルはシーケンスであるため、インデックス作成とスライスは、文字列の場合と同じようにタプルに対して機能します。次の入力を想定-

L = ('spam', 'Spam', 'SPAM!')

 

Python式 結果 説明
L [2] 'スパム!' オフセットはゼロから始まります
L [-2] 'スパム' ネガティブ:右から数える
L [1:] ['スパム'、 'SPAM!'] スライスはセクションをフェッチします

区切り文字なし

これらの短い例に示されているように、コンマで区切られ、記号を識別せずに記述された複数のオブジェクトのセット(リストの角かっこ、タプルの括弧など)は、デフォルトでタプルになります。

#!/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には次のタプル関数が含まれています-

シニア番号 説明付きの関数
1 cmp(tuple1、tuple2)

両方のタプルの要素を比較します。

2 len(タプル)

タプルの全長を示します。

3 max(タプル)

最大値を持つタプルからアイテムを返します。

4 min(タプル)

最小値を持つタプルからアイテムを返します。

5 タプル(seq)

リストをタプルに変換します。