Python元組 tuple的概念與基本操作詳解【定義、創(chuàng)建、訪問、計數(shù)、推導式等】
本文實例講述了Python元組 tuple的概念與基本操作。分享給大家供大家參考,具體如下:
元組 tuple
元組 tuple的定義
列表屬于可變序列,可以任意修改列表中的元素。元組屬于不可變序列,不能修改元組中的
元素。因此,元組沒有增加元素、修改元素、刪除元素相關的方法。
因此,我們只需要學習元組的創(chuàng)建和刪除,元組中元素的訪問和計數(shù)即可。元組支持如
下操作:
- 索引訪問
- 切片操作
- 連接操作
- 成員關系操作
- 比較運算操作
- 計數(shù):元組長度 len()、最大值 max()、最小值 min()、求和 sum()等。
元組的創(chuàng)建
- 通過()創(chuàng)建元組。小括號可以省略。
a = (10,20,30) 或者 a = 10,20,30
如果元組只有一個元素,則必須后面加逗號。這是因為解釋器會把(1)解釋為整數(shù) 1,(1,)
解釋為元組。
>>> a = (1) >>> type(a) <class 'int'> >>> a = (1,) #或者 a = 1, >>> type(a) <class 'tuple'>
- 通過 tuple()創(chuàng)建元組
tuple(可迭代的對象)
例如:
b = tuple() #創(chuàng)建一個空元組對象 b = tuple("abc") b = tuple(range(3)) b = tuple([2,3,4])
總結:
tuple()可以接收列表、字符串、其他序列類型、迭代器等生成元組。
list()可以接收元組、字符串、其他序列類型、迭代器等生成列表。
元組的元素訪問和計數(shù)
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,10,30,9,8) >>> a[1] 10 >>> a[1:3] (10, 30) >>> a[:4] (20, 10, 30, 9)
3. 列表關于排序的方法 list.sorted()是修改原列表對象,元組沒有該方法。如果要對元組排
序,只能使用內置函數(shù) 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)]
生成器推導式創(chuàng)建元組
從形式上看,生成器推導式與列表推導式類似,只是生成器推導式使用小括號。列表推
導式直接生成列表對象,生成器推導式生成的不是列表也不是元組,而是一個生成器對象。
我們可以通過生成器對象,轉化成列表或者元組。也可以使用生成器對象的__next__()
方法進行遍歷,或者直接作為迭代器對象來使用。不管什么方式使用,元素訪問結束后,如
果需要重新訪問其中的元素,必須重新創(chuàng)建該生成器對象。
【操作】生成器的使用測試
>>> 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
元組總結
- 元組的核心特點是:不可變序列。
- 元組的訪問和處理速度比列表快。
- 與整數(shù)和字符串一樣,元組可以作為字典的鍵,列表則永遠不能作為字典的鍵使用。
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結》、《Python列表(list)操作技巧總結》、《Python字典操作技巧匯總》、《Python數(shù)據(jù)結構與算法教程》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
python cv2截取不規(guī)則區(qū)域圖片實例
今天小編就為大家分享一篇python cv2截取不規(guī)則區(qū)域圖片實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12python 根據(jù)列表批量下載網(wǎng)易云音樂的免費音樂
這篇文章主要介紹了python 根據(jù)列表下載網(wǎng)易云音樂的免費音樂,幫助大家更好的理解和學習python,感興趣的朋友可以了解下2020-12-12python3.6.8 + pycharm + PyQt5 環(huán)境搭建的圖文教程
這篇文章主要介紹了python3.6.8 + pycharm + PyQt5 環(huán)境搭建,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06Python數(shù)據(jù)結構之優(yōu)先級隊列queue用法詳解
queue庫提供了一個適用于多線程編程的先進先出(FIFO)數(shù)據(jù)結構,可以用來在生產(chǎn)者與消費者線程之間安全地傳遞消息或其他數(shù)據(jù),它會為調用者處理鎖定,使多個線程可以安全而更容易地處理同一個Queue實例.Queue的大小可能受限,以限制內存使用或處理,需要的朋友可以參考下2021-05-05