タプルとは何ですか?
タプルは、リストと同じようにシーケンスです。タプルとリストの違いは、リスト(可変)とは異なり、タプルは変更できない(不変)ことです。
タプルは角かっこ()を使用し、リストは角かっこ[]を使用します。
1.タプルを初期化し、値を割り当てます
#两种方法都可以初始化
emptyTuple=()
emptyTuple1=tuple()
#两种方法都可以赋值
emptyTuple=(1,2,3,4)
emptyTuple1=1,2,3,4
print(emptyTuple)
print(emptyTuple1)
結果:
覚えておくことが重要です
値を1つだけ含むタプルを作成する場合は、項目の後にコンマを追加する必要があります。
#只有一个值的话后面要加逗号
tup=('a',)
tup1='a',
#如果没有逗号,那它是一个string不是一个元组了
notTuple=('a')
print(tup)
print(tup1)
print(notTuple)
結果:
2。訪問価値
tun=(2,3,4,5)
print(tun[0])#索引正向从0开始
print(tun[-4])#索引负向从最后一个-1开始倒数
結果:
3。タプルを分割します
tun=(2,3,4,5)
print(tun[0:2])
print(tun[:3])
print(tun[-3:-1])
結果:
4。タプルは変更できません
tun=(2,3,4,5)
tun[0]='fish'
結果:
タプルが不変であっても、既存のタプルの一部を使用して新しいタプルを作成できます
tun=(2,3,4,5)
tun1=(6,7,8,9)
tunall=tun+tun1
print(tunall)
結果:
5。タプル法
animals=('pig','pig','cat',1)
#返回索引
print('pig first index: ',animals.index('pig'))
print('cat first index: ',animals.index('cat'))
#计数
print(animals.count('pig'))
結果:
6.タプルを反復処理します
animals=('pig','pig','cat',1)
for item in animals:
print(item)
for item in ('a','b','c'):
print(item)
結果:
7。タプルのアンパックタプル
はシーケンスのアンパックに非常に役立ちます
x,y=(7,10)
print(x)
print(y)
print("Value of x is {},the value of y is {}".format(x,y))
結果:
8。列挙
列挙関数は、各反復のカウント(デフォルトの0から開始)と反復シーケンスによって取得された値を含むタプルを返します。
friends = ('Steve', 'Rachel', 'Michael', 'Monica')
for index, friend in enumerate(friends):
print(index,friend)
print(index)
print(friend)
for index in enumerate(friends):
print(index)
結果:
リストに対するタプルの利点
リストとタプルは、値をシーケンスに格納するために使用される標準のPythonデータ型です。タプルは不変ですが、リストは変更可能です。
タプルリストのその他の利点は次のとおりです。
**グループはリストよりも高速です。**定数値のセットを定義する場合は、リストの代わりにタプルを使用して、定数値を反復処理するだけです。パフォーマンスの違いは、Pythonコードの時間を計ることができるtimeitライブラリを使用して部分的に測定できます。次のコードは、メソッドごとに100万回コードを実行し、費やされた合計時間(秒単位)を出力します。
import timeit
print('Tuple time: ', timeit.timeit('x=(1,2,3,4,5,6,7,8,9,10,11,12)', number=1000000))
print('List time: ', timeit.timeit('x=[1,2,3,4,5,6,7,8,9,10,11,12]', number=1000000))
結果:
タプルは辞書キーとして使用できます:一部のタプルは辞書キーとして使用できます(特に、文字列、数値、その他のタプルなどの不変の値を含むタプル)。リストは不変ではないため、リストを辞書キーとして使用することはできません。
bigramsTupleDict = {
('this', 'is'): 23,
('is', 'a'): 12,
('a', 'sentence'): 2}
print(bigramsTupleDict)
結果:
しかし、リストは機能しません
bigramsListDict = {
['this', 'is']: 23,
['is', 'a']: 12,
['a', 'sentence']: 2}
print(bigramsListDict)
結果:
タプルはコレクション内の値になる可能性があります
graphicDesigner = {
('this', 'is'),
('is', 'a'),
('a', 'sentence')}
print(graphicDesigner)
結果:
リストをコレクション内の値にすることはできません。
graphicDesigner = {
['this', 'is'],
['is', 'a'],
['a', 'sentence']}
print(graphicDesigner)
結果: