タプル
タプルは不変のリストです。タプルは、作成後にはいかなる方法でも変更することはできません。
なぜタプルが必要なのでしょうか?
- データを変更(意図的または偶発的)から保護する場合
- タプルはリストよりも占有するメモリ領域が少なく、高速です。
- 関数から複数の値を返すため。
- タプルは辞書キーとして使用できます (詳細は後ほど)。
タプルの作成
1 つの方法: リストに似ていますが、かっこを使用します
<テーブル>
<本体>
1
2
3プレ>
|
a = (1,2,3,4,5)
print(type(a)) # クラス「タプル」
印刷(a) # (1、2、3、4、5)
|
表>
2 つの方法: tuple() 関数を使用する
<テーブル>
<本体>
1
2
3
プレ>
|
b = タプル((1,2,3,4,5))
print(type(b)) # <クラス'タプル'>
印刷(b) # (1、2、3、4、5)
|
表>
覚えておく必要があります!
<オール>
タプルは不変のリストです。
タプルの要素はさまざまなタイプにすることができます。
タプルは、tuple() 関数を使用するか、括弧内に要素をリストすることによって作成できます。
|
タプルの機能
1) 括弧を使用せずにタプルに値を割り当てることができます/
たとえば、次のようなタプルを作成できます。
<テーブル>
<本体>
1
2
3
プレ>
|
a = 1,2,3,4,5
print(a[3]) # 4 タプルの要素には、リストの要素と同じ方法でアクセスできます。
# 角括弧内に要素インデックスを指定します。
|
表>
2) 1 つの要素を含むタプルを宣言するには、末尾にコンマを使用する必要があります。
<テーブル>
<本体>
1
2
3
4プレ>
|
a = 'a'
b = 'b',
print(type(b)) # <クラス 'タプル'>
print(type(a)) # <class 'str'>
|
表>
3) タプルの要素の値を個々の変数に割り当てることができます。
<テーブル>
<本体>
1
2
3プレ>
|
my_tuple = (1, 2, 3, 4, 5)
a、b、c、d、e = my_tuple
プリント(c) #3
|
表>
アンダースコア _ は不要な変数として使用できます
<テーブル>
<本体>
1
2
3プレ>
|
my_tuple = (1, 2, 3)
a、_、_ = my_tuple
印刷(a) #1
|
表>
変数の数は、その数値と一致する必要があります。タプルの要素のです。
プレ>
4) タプルには、さまざまなネストされた要素を含めることができます。この場合、ネストされた要素を参照するときは、追加の角かっこを使用する必要があります。
<テーブル>
<本体>
1
2プレ>
|
my_tuple = (('a', 'b', 'c'), [1, 2], ((1, 'a' )、('b'、'c')))
print(my_tuple[2][1]) # ('b', 'c')
|
表>
|
要素を参照します。ネストされたタプル
タプルには、他のタプルを要素として含めることができます。また、リスト、文字列などをタプルの要素として使用することもできます。
要素へのアクセスは、角かっこで要素のインデックスを指定して、リストの要素にアクセスするのと似ています。インデックス作成はゼロから始まります。
ネストされた要素を参照する場合は、追加の角括弧を使用する必要があります。
my_tuple = (('a', 'b', 'c'), [1, 2], ((1, 'a' )、('b'、'c')))
print(my_tuple[2][1]) # ('b', 'c')
|
タプルの比較
タプルを比較する場合:
- 数値は値で比較されます;
- 辞書順の文字列;
- 同じ位置にある要素が等しい場合、次の要素が比較されます;
- 要素の比較は最初の不等式まで行われます;
- 比較する場合、要素は同じ型にキャストする必要があります (数値と文字列を比較することはできません)。
例
<テーブル>
<本体>
1
2
3
4
5
6
7
8
9
10
十一
12
プレ>
|
A=4
B=8
C = 'a',
D = 'z',
E = (14, '最大', '最小')
F = (14, '最大', '最小')
K=999
print(A < B) # 真
print(C < D) # 真
print(E > F) # 真
print(K < F) # 偽
print(C < K) # TypeError: '<'サポートされていません
# 'str' のインスタンス間'int'
|
表>
|
スライス
スライスはリストと同様に行うことが できます。
インデックスまたはスライス ( slice ) によって要素を取得することによって、タプルを一切変更せず、後で使用するためにその一部をコピーしただけであることに注意してください (たとえば、印刷用)。 、いくつかの計算など.p.)。
スライス構文
my_tuple[start:stop:step] # 開始、停止、ステップ
|
タプルの連結
タプルを連結して新しいオブジェクトを作成することができます (文字列と同様の連結)。
<テーブル>
<本体>
1
2
3
4プレ>
|
x = (1,2,3,4)
y = (5,6,7,8)
z = x + y
print(z) # (1, 2, 3, 4, 5, 6, 7, 8)
|
表>
乗算演算中、タプルは数回繰り返されます (文字列の乗算と同様)。
<テーブル>
<本体>
1
2
3プレ>
|
x = (1,2,3,4)
z = x*2
print(z) # (1, 2, 3, 4, 1, 2, 3, 4)
|
表>
タプルの削除
タプルの操作とメソッドはリストの操作とメソッドに似ています。タプルの要素を変更するものは除きます が。
tuple に含まれる要素は、不変性のため追加または削除できません。ただし、タプル自体は del 演算子を使用して削除できます。
<テーブル>
<本体>
1
2プレ>
|
学生 = (2007、「イワン」、「イワノフ」、「9-A」、False)
デル学生
|
表>
|
タプルを操作するためのメソッド
タプルを操作するメソッドは、タプルを変更するメソッドを除いて、リストを操作するメソッドと似ています。タプルは不変であるため、このようなメソッドは使用できません。新しいタプルを作成することで適用できます。
タプルソートの例
sorted() 関数を使用すると、タプルを簡単に並べ替えることができます。
<テーブル>
<本体>
1
2
3
4プレ>
|
a = (5、3、2、1、4)
print(sorted(a)) # [1、2、3、4、5]
a = タプル(sorted(a))
印刷(a) # (1、2、3、4、5)
|
表>
append() 、 extend() 、 remove() などのメソッドはタプル では機能しないことに注意してください。 pop() 。
|