1. 程式人生 > 程式設計 >Python元組 tuple的概念與基本操作詳解【定義、建立、訪問、計數、推導式等】

Python元組 tuple的概念與基本操作詳解【定義、建立、訪問、計數、推導式等】

本文例項講述了Python元組 tuple的概念與基本操作。分享給大家供大家參考,具體如下:

元組 tuple

  • 元組 tuple的定義
  • 元組的建立
  • 元組的元素訪問和計數
    • 1. 元組的元素不能修改
    • 2. 元組的元素訪問和列表一樣,只不過返回的仍然是元組物件。
    • 3. 列表關於排序的方法 list.sorted()是修改原列表物件,元組沒有該方法。如果要對元組排
  • zip
  • 生成器推導式建立元組
  • 元組總結

元組 tuple的定義

列表屬於可變序列,可以任意修改列表中的元素。元組屬於不可變序列,不能修改元組中的
元素。因此,元組沒有增加元素、修改元素、刪除元素相關的方法。

因此,我們只需要學習元組的建立和刪除,元組中元素的訪問和計數即可。元組支援如
下操作:

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

元組的建立

  1. 通過()建立元組。小括號可以省略。
a = (10,20,30) 或者 a = 10,30

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

>>> a = (1)
>>> type(a)
<class 'int'>
>>> a = (1,) #或者 a = 1,>>> type(a)
<class 'tuple'>
  1. 通過 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

元組總結

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

更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python函式使用技巧總結》、《Python列表(list)操作技巧總結》、《Python字典操作技巧彙總》、《Python資料結構與演算法教程》、《Python字串操作技巧彙總》及《Python入門與進階經典教程》

希望本文所述對大家Python程式設計有所幫助。