Python プログラミング入門 (009) - タプル演算

Python プログラミング入門 (009) - タプル演算

タプルは Python のもう 1 つの重要なシーケンス構造であり、リストと同様に、タプルも特定の順序でソートされた一連の要素で構成されます。

タプルは不変リストとして見ることもでき、通常、タプルは変更する必要のないコンテンツを保存するために使用されます。形式的には、タプルのすべての要素は一対の括弧内に配置され、隣接する要素はカンマ (,) で区切られます。

1. タプルとリストの違い

タプルとリストはどちらもシーケンス型であり、どちらも一連のデータを特定の順序で格納できます。Python でサポートされているデータ型であれば、データ型は制限されません。タプルとリストの違いは次のとおりです。

(1) リストは可変シーケンスであり、その要素はいつでも変更または削除できますが、タプルは不変シーケンスであり、全体を置き換えない限りその要素を変更することはできません。
(2) リストでは、append()、extend()、insert()、remove()、pop() などのメソッドを使用してリスト要素を追加および変更できますが、タプルには要素を追加または変更できないため、これらのメソッドがありません。タプルの要素も削除できません。

(3) リストはスライスを使用してリスト内の要素にアクセスし、変更できます。タプルもスライスをサポートしますが、スライスを介したタプル内の要素へのアクセスのみサポートされ、変更はサポートされません。

(4) タプルはリストよりも高速にアクセスおよび処理されます。したがって、何も変更せずに要素にアクセスするだけでよい場合は、タプルを使用します。

(5) リストは辞書キーとして使用できませんが、タプルは使用できます。

タプルとリストの最大の違いは、リスト内の要素は自由に変更できるのに対し、タプル内の要素はタプル全体を置換しない限り変更できないことです。**tuple タプルはリストの読み取り専用バージョンであることがわかります。**一般に、タプルはリストよりもパフォーマンスが優れています。

タプルとリストは相互に変換できます。

tuple() 関数はリストを受け取り、同じ要素を含む配列を返します。

list() 関数はタプルを受け取り、リストを返します。

2.タプルの作成

1. 代入ステートメントを使用してタプルを作成する

代入ステートメントを使用してタプルを作成する構文は次のとおりです。

tuplename = (element1, element2, element3, ..., elementn)

例えば:

tuple1 = ("张三","李四","王五","张鹏","刘飞")
tuple2 = (20,21,22,19,20)
tuple3 = ("Python",19,[1,2],('c',2.0))
tuple4 = ()   # 创建一个空元组
print(tuple1)
print(tuple2)
print(tuple3)
print(tuple4)  
print(type(tuple4))

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
('张三', '李四', '王五', '张鹏', '刘飞')
(20, 21, 22, 19, 20)
('Python', 19, [1, 2], ('c', 2.0))
()
<class 'tuple'>

Python では、タプルは通常、すべての要素を囲むために一対のかっこを使用しますが、かっこは必要ありません。各要素がカンマで区切られている限り、Python はそれをタプルとして扱います。たとえば:

tuple1 = "张三","李四","王五","张鹏","刘飞"
print(tuple1)
print(type(tuple1))

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
('张三', '李四', '王五', '张鹏', '刘飞')
<class 'tuple'>

注: 作成されたタプルに文字列型の要素が 1 つだけある場合は、要素の後にコンマを追加する必要があります。追加しないと、Python インタプリタはそれを文字列として扱います。例えば:

tuple1 = ("张三")
tuple2 = ("Tom",)
print(tuple1)
print(type(tuple1))
print(tuple2)
print(type(tuple2))

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
张三
<class 'str'>
('Tom',)
<class 'tuple'>

2. tuple() 関数を使用してタプルを作成します

Python には、他のデータ型をタプル型に変換するための組み込み関数 tuple() が用意されています。

tuple() 関数の構文形式は次のとおりです。

tuple(data)
说明:data 表示可以转化为元组的数据,包括字符串、元组、range 对象等。

例えば:

tuple1 = tuple()         # 创建空元组
print(tuple1)
tuple2 = tuple("hello")  # 将字符串转换成元组
print(tuple2)
list1 = ["Python","Java","C++","JavaScript"]
tuple3 = tuple(list1)    # 将列表转换成元组
print(tuple3)
dict1 = {
    
    "张三":20,"李四":19,"王五":20}
tuple4 = tuple(dict1)    # 将字典转换成元组
print(tuple4)
range1 = range(1,6)
tuple5 = tuple(range1)   # 将区间转换成元组
print(tuple5)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
()
('h', 'e', 'l', 'l', 'o')
('Python', 'Java', 'C++', 'JavaScript')
('张三', '李四', '王五')
(1, 2, 3, 4, 5)

3. タプル内の要素にアクセスする

リストと同様に、インデックスを使用してタプル内の要素にアクセスしたり (結果として要素の値が得られます)、スライスを使用してタプル内の要素のグループにアクセスできます (結果として新しいサブタプルが得られます)。 )。

1. インデックスを使用してタプルの要素にアクセスする

構文形式は次のとおりです。

tuplename[index]
说明:tuplename 表示元组名字,index 表示索引值。

例えば:

tuple1 = ("Python","Java","C++","JavaScript")
print(tuple1[1])
print(type(tuple1[1]))
print(tuple1[-1])
print(type(tuple1[-1]))

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
Java
<class 'str'>
JavaScript
<class 'str'>

2. スライスを使用してタプル要素にアクセスする

構文形式は次のとおりです。

tuplename[start : end : step]
说明:start 表示起始索引,end 表示结束索引,step 表示步长。

例えば:

tuple1 = ("Python","Java","C++","JavaScript","Go")
print(tuple1[:])
print(tuple1[1:4])
print(tuple1[::-1])
print(tuple1[-1:-3:-1])
print(tuple1[1:2])
print(type(tuple1[1:2]))

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
('Python', 'Java', 'C++', 'JavaScript', 'Go')
('Java', 'C++', 'JavaScript')
('Go', 'JavaScript', 'C++', 'Java', 'Python')
('Go', 'JavaScript')
('Java',)
<class 'tuple'>

4. タプルを変更する

タプルは不変のシーケンスです。タプル内の要素は変更できません。新しいタプルは、古いタプルを置き換えるためにのみ作成できます。

例えば:

tuple1 = ("Python","Java","C++","JavaScript")
print(tuple1)
tuple1 = ("Python","Go","Java","C++","JavaScript")
print(tuple1)
tuple2 = (1,2,3)
tuple3 = (11,12,13)
tuple4 = tuple2 + tuple3
print(tuple2)
print(tuple3)
print(tuple4)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
('Python', 'Java', 'C++', 'JavaScript')
('Python', 'Go', 'Java', 'C++', 'JavaScript')
(1, 2, 3)
(11, 12, 13)
(1, 2, 3, 11, 12, 13)

5. タプルの削除

作成されたタプルが使用されなくなった場合は、次のように del キーワードを使用して削除できます。

tuple1 = ("Python","Java","C++","JavaScript")
print(tuple1)
del tuple1
print(tuple1)

运行结果如下:
===================== RESTART: C:\Python\Python38\First.py =====================
('Python', 'Java', 'C++', 'JavaScript')
Traceback (most recent call last):
  File "C:\Python\Python38\First.py", line 4, in <module>
    print(tuple1)
NameError: name 'tuple1' is not defined

おすすめ

転載: blog.csdn.net/weixin_44377973/article/details/132125781