Python元組 tuple的概念與基本操作詳解【定義、建立、訪問、計數、推導式等】
阿新 • • 發佈:2020-01-09
本文例項講述了Python元組 tuple的概念與基本操作。分享給大家供大家參考,具體如下:
元組 tuple
- 元組 tuple的定義
- 元組的建立
- 元組的元素訪問和計數
- 1. 元組的元素不能修改
- 2. 元組的元素訪問和列表一樣,只不過返回的仍然是元組物件。
- 3. 列表關於排序的方法 list.sorted()是修改原列表物件,元組沒有該方法。如果要對元組排
- zip
- 生成器推導式建立元組
- 元組總結
元組 tuple的定義
列表屬於可變序列,可以任意修改列表中的元素。元組屬於不可變序列,不能修改元組中的
元素。因此,元組沒有增加元素、修改元素、刪除元素相關的方法。
下操作:
- 索引訪問
- 切片操作
- 連線操作
- 成員關係操作
- 比較運算操作
- 計數:元組長度 len()、最大值 max()、最小值 min()、求和 sum()等。
元組的建立
- 通過()建立元組。小括號可以省略。
a = (10,20,30) 或者 a = 10,30
如果元組只有一個元素,則必須後面加逗號。這是因為直譯器會把(1)解釋為整數 1,(1,)
解釋為元組。
>>> a = (1) >>> type(a) <class 'int'> >>> a = (1,) #或者 a = 1,>>> type(a) <class 'tuple'>
- 通過 tuple()建立元組
tuple(可迭代的物件)
例如:
b = tuple() #建立一個空元組物件 b = tuple("abc") b = tuple(range(3)) b = tuple([2,3,4])
總結:
tuple()可以接收列表、字串、其他序列型別、迭代器等生成元組。
list()可以接收元組、字串、其他序列型別、迭代器等生成列表。
元組的元素訪問和計數
1. 元組的元素不能修改
>>> a = (20,10,30,9,8) >>> a[3]=33 Traceback (most recent call last): File "<pyshell#313>",line 1,in <module> a[3]=33 TypeError: 'tuple' object does not support item assignment
2. 元組的元素訪問和列表一樣,只不過返回的仍然是元組物件。
>>> a = (20,8) >>> a[1] 10 >>> a[1:3] (10,30) >>> a[:4] (20,9)
3. 列表關於排序的方法 list.sorted()是修改原列表物件,元組沒有該方法。如果要對元組排
序,只能使用內建函式 sorted(tupleObj),並生成新的列表物件。
>>> a = (20,8) >>> sorted(a) [8,30]
zip
zip(列表 1,列表 2,…)將多個列表對應位置的元素組合成為元組,並返回這個 zip 物件。
>>> a = [10,30] >>> b = [40,50,60] >>> c = [70,80,90] >>> d = zip(a,b,c) >>> list(d) [(10,40,70),(20,80),(30,60,90)]
生成器推導式建立元組
從形式上看,生成器推導式與列表推導式類似,只是生成器推導式使用小括號。列表推
導式直接生成列表物件,生成器推導式生成的不是列表也不是元組,而是一個生成器物件。
我們可以通過生成器物件,轉化成列表或者元組。也可以使用生成器物件的__next__()
方法進行遍歷,或者直接作為迭代器物件來使用。不管什麼方式使用,元素訪問結束後,如
果需要重新訪問其中的元素,必須重新建立該生成器物件。
【操作】生成器的使用測試
>>> s = (x*2 for x in range(5)) >>> s <generator object <genexpr> at 0x0000000002BDEB48> >>> tuple(s) (0,2,4,6,8) >>> list(s) #只能訪問一次元素。第二次就為空了。需要再生成一次 [] >>> s <generator object <genexpr> at 0x0000000002BDEB48> >>> tuple(s) () >>> s = (x*2 for x in range(5)) >>> s.__next__() 0 >>> s.__next__() 2 >>> s.__next__() 4
元組總結
- 元組的核心特點是:不可變序列。
- 元組的訪問和處理速度比列表快。
- 與整數和字串一樣,元組可以作為字典的鍵,列表則永遠不能作為字典的鍵使用。
更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python函式使用技巧總結》、《Python列表(list)操作技巧總結》、《Python字典操作技巧彙總》、《Python資料結構與演算法教程》、《Python字串操作技巧彙總》及《Python入門與進階經典教程》
希望本文所述對大家Python程式設計有所幫助。