Python-タプル
タプルは、不変の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 | 反復 |