Python元組 tuple的概念與基本操作詳解【定義、創(chuàng)建、訪問、計(jì)數(shù)、推導(dǎo)式等】
本文實(shí)例講述了Python元組 tuple的概念與基本操作。分享給大家供大家參考,具體如下:
元組 tuple
元組 tuple的定義
列表屬于可變序列,可以任意修改列表中的元素。元組屬于不可變序列,不能修改元組中的
元素。因此,元組沒有增加元素、修改元素、刪除元素相關(guān)的方法。
因此,我們只需要學(xué)習(xí)元組的創(chuàng)建和刪除,元組中元素的訪問和計(jì)數(shù)即可。元組支持如
下操作:
- 索引訪問
- 切片操作
- 連接操作
- 成員關(guān)系操作
- 比較運(yùn)算操作
- 計(jì)數(shù):元組長(zhǎng)度 len()、最大值 max()、最小值 min()、求和 sum()等。
元組的創(chuàng)建
- 通過()創(chuàng)建元組。小括號(hào)可以省略。
a = (10,20,30) 或者 a = 10,20,30
如果元組只有一個(gè)元素,則必須后面加逗號(hào)。這是因?yàn)榻忉屍鲿?huì)把(1)解釋為整數(shù) 1,(1,)
解釋為元組。
>>> a = (1) >>> type(a) <class 'int'> >>> a = (1,) #或者 a = 1, >>> type(a) <class 'tuple'>
- 通過 tuple()創(chuàng)建元組
tuple(可迭代的對(duì)象)
例如:
b = tuple() #創(chuàng)建一個(gè)空元組對(duì)象
b = tuple("abc")
b = tuple(range(3))
b = tuple([2,3,4])
總結(jié):
tuple()可以接收列表、字符串、其他序列類型、迭代器等生成元組。
list()可以接收元組、字符串、其他序列類型、迭代器等生成列表。
元組的元素訪問和計(jì)數(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. 元組的元素訪問和列表一樣,只不過返回的仍然是元組對(duì)象。
>>> a = (20,10,30,9,8) >>> a[1] 10 >>> a[1:3] (10, 30) >>> a[:4] (20, 10, 30, 9)
3. 列表關(guān)于排序的方法 list.sorted()是修改原列表對(duì)象,元組沒有該方法。如果要對(duì)元組排
序,只能使用內(nèi)置函數(shù) sorted(tupleObj),并生成新的列表對(duì)象。
>>> a = (20,10,30,9,8) >>> sorted(a) [8, 9, 10, 20, 30]
zip
zip(列表 1,列表 2,…)將多個(gè)列表對(duì)應(yīng)位置的元素組合成為元組,并返回這個(gè) zip 對(duì)象。
>>> 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)]
生成器推導(dǎo)式創(chuàng)建元組
從形式上看,生成器推導(dǎo)式與列表推導(dǎo)式類似,只是生成器推導(dǎo)式使用小括號(hào)。列表推
導(dǎo)式直接生成列表對(duì)象,生成器推導(dǎo)式生成的不是列表也不是元組,而是一個(gè)生成器對(duì)象。
我們可以通過生成器對(duì)象,轉(zhuǎn)化成列表或者元組。也可以使用生成器對(duì)象的__next__()
方法進(jìn)行遍歷,或者直接作為迭代器對(duì)象來使用。不管什么方式使用,元素訪問結(jié)束后,如
果需要重新訪問其中的元素,必須重新創(chuàng)建該生成器對(duì)象。
【操作】生成器的使用測(cè)試
>>> 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
元組總結(jié)
- 元組的核心特點(diǎn)是:不可變序列。
- 元組的訪問和處理速度比列表快。
- 與整數(shù)和字符串一樣,元組可以作為字典的鍵,列表則永遠(yuǎn)不能作為字典的鍵使用。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python列表(list)操作技巧總結(jié)》、《Python字典操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python 刪除連續(xù)出現(xiàn)的指定字符的實(shí)例
今天小編就為大家分享一篇Python 刪除連續(xù)出現(xiàn)的指定字符的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Django框架配置mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)過程
這篇文章主要介紹了Django框架配置mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
在Linux上安裝Python的Flask框架和創(chuàng)建第一個(gè)app實(shí)例的教程
這篇文章主要介紹了在Linux上安裝Python的Flask框架和創(chuàng)建第一個(gè)app實(shí)例,包括創(chuàng)建一個(gè)HTML模版和利用Jinja2模板引擎來做渲染的步驟,需要的朋友可以參考下2015-03-03
Python實(shí)現(xiàn)的網(wǎng)頁(yè)截圖功能【PyQt4與selenium組件】
這篇文章主要介紹了Python實(shí)現(xiàn)的網(wǎng)頁(yè)截圖功能,結(jié)合實(shí)例形式分別描述了使用PyQt4組件與selenium組件進(jìn)行網(wǎng)頁(yè)截圖操作的相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2018-07-07
Python中rasterio庫(kù)的實(shí)現(xiàn)
Rasterio是一個(gè)用于讀寫光柵數(shù)據(jù)的Python庫(kù),它專注于快速和可靠地處理大規(guī)模地理空間柵格數(shù)據(jù),本文主要介紹了Python中rasterio庫(kù)的實(shí)現(xiàn),感興趣的可以了解一下2025-04-04
Python過濾txt文件內(nèi)重復(fù)內(nèi)容的方法
今天小編就為大家分享一篇Python過濾txt文件內(nèi)重復(fù)內(nèi)容的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10

