Python元組常用方法及匯總


元組 tuple的定義

列表屬於可變序列,可以任意修改列表中的元素。元組屬於不可變序列,不能修改元組中的
元素。因此,元組沒有增加元素、修改元素、刪除元素相關的方法。我們只需要學習元組的創建和刪除,元組中元素的訪問和計數即可。

元組支持如下操作:

  1. 索引訪問
  2. 切片操作
  3. 連接操作
  4. 成員關系操作
  5. 比較運算操作
  6. 計數:元組長度 len()、最大值 max()、最小值 min()、求和 sum()等。

元組的創建

通過()創建元組。小括號可以省略。

a = (10,20,30) 或者 a = 10,20,30

注:如果元組只有一個元素,則必須后面加逗號。這是因為解釋器會把(1)解釋為整數 1,(1,)解釋為元組。

通過 tuple()創建元組,tuple(可迭代的對象)

b = tuple() #創建一個空元組對象
b = tuple("abc")
b = tuple(range(3))
b = tuple([2,3,4])

元組的元素訪問和計數

元組的元素不能修改

>>> 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

元組的元素訪問和列表一樣,只不過返回的仍然是元組對象。

>>> a = (20,10,30,9,8)
>>> a[1]
10
>>> a[1:3]
(10, 30)
>>> a[:4]
(20, 10, 30, 9)

列表關於排序的方法 list.sorted()是修改原列表對象,元組沒有該方法。如果要對元組排序,只能使用內置函數 sorted(tupleObj),並生成新的列表對象。

>>> a = (20,10,30,9,8)
>>> sorted(a)
[8, 9, 10, 20, 30]

zip()

zip(列表 1,列表 2,…)將多個列表對應位置的元素組合成為元組,並返回這個 zip 對象。

>>> a = [10,20,30]
>>> b = [40,50,60]
>>> c = [70,80,90]
>>> d = zip(a,b,c)
>>> list(d)
[(10, 40, 70), (20, 50, 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

元組總結

  1. 元組的核心特點是:不可變序列。
  2. 元組的訪問和處理速度比列表快。
  3. 與整數和字符串一樣,元組可以作為字典的鍵,列表則永遠不能作為字典的鍵使用。

轉載於:<https://blog.csdn.net/weixin_43158056/article/details/92799273


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM