十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問題一站解決
元組其實(shí)和列表的差距并不是很大,但是也有其獨(dú)立的特點(diǎn):
創(chuàng)新互聯(lián)公司技術(shù)團(tuán)隊(duì)10多年來(lái)致力于為客戶提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、成都品牌網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過(guò)多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了上千多家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。
①元組是一系列不可變的Python對(duì)象。元組是一種序列,就像列表一樣;列表通常用來(lái)存儲(chǔ)相同類型的數(shù)據(jù);而元組在實(shí)際開發(fā)中,通常用來(lái)存儲(chǔ)不同類型的數(shù)據(jù)。
②元組和列表之間的主要區(qū)別是元組不能像列表那樣改變?cè)氐闹?,可以?jiǎn)單地理解為“只讀列表”。 元組使用小括號(hào) -(),而列表使用方括號(hào) -[];
③元組創(chuàng)建很簡(jiǎn)單,只需要在括號(hào)中添加元素,并使用逗號(hào)隔開即可。
p class="ztext-empty-paragraph"
創(chuàng)建元組:需使用逗號(hào)分隔值放入小括號(hào)的一個(gè)序列。 或者,也可以將這些逗號(hào)分隔值放在括號(hào)之間。
元組元素的訪問:請(qǐng)使用方括號(hào)進(jìn)行指定索引切片或索引,以獲取該索引處的值。
更改元組:元組是不可變的,但是可以使用現(xiàn)有元組的一部分來(lái)創(chuàng)建新的元組。
刪除元組元素:元組中的元素值是不允許刪除的,但我們可以使用del語(yǔ)句來(lái)刪除整個(gè)元組。
python元組構(gòu)建了對(duì)象的簡(jiǎn)單組合,元組與列表非常相似,但元組不能在原位置修改,通常寫成包在圓括號(hào)中的一系列項(xiàng),且具有列表的大多數(shù)屬性。
元組是:
任意對(duì)象的有序集合:與字符串和列表類似,元組是一個(gè)基于位置的有序?qū)ο蠹?,可以嵌入任何類型的?duì)象。
通過(guò)偏移量存取:同字符串、列表一樣,元組中的元素也是通過(guò)偏移量來(lái)訪問的,支持索引和分片。
屬于“不可變序列”:與字符串相同,元組是不可變的,不支持適用于列表的任何原位置修改操作。
固定長(zhǎng)度、多樣性、任意嵌套:元組不可變,所以不能改變?cè)M長(zhǎng)度,元組可以包含復(fù)合對(duì)象,支持任意嵌套。
對(duì)象引用數(shù)組:與列表相似,元組也是對(duì)象引用的數(shù)組,存儲(chǔ)了指向其他對(duì)象的存取點(diǎn)。
所以這篇文章,我們先來(lái)回顧和總結(jié)Python數(shù)據(jù)結(jié)構(gòu)里常用操作。Python中常見的數(shù)據(jù)結(jié)構(gòu)可以統(tǒng)稱為容器(container)。序列(如列表和元組)、映射(如字典)以及集合(set)是三類主要的容器。而扁平序列如str、bytes、bytearray、memoryview 和 array.array等不在這篇文章的討論范圍內(nèi)。
在此,我們先從元組開始說(shuō)起。
元組區(qū)別于列表的顯著特征之一就是它不能被修改,但其另外一個(gè)作用就是 用于沒有字段名的記錄 [1] 。因?yàn)楹笳呓?jīng)常被忽略,我們先來(lái)看看元組作為記錄的作用。
使用括號(hào)就可以定義一個(gè)元組。元組中的每個(gè)元素都存放了記錄中一個(gè)字段的數(shù)據(jù),外加這個(gè)字段的位置。正是這個(gè)位置信息給數(shù)據(jù)賦予了意義。下面的例子中,元組就被當(dāng)作記錄加以利用:
輸出為:
上述for循環(huán)中的操作提取了元組中的元素,也叫作拆包(unpacking)。平行賦值是對(duì)元組拆包很好的應(yīng)用,示例如下:
還有一個(gè)經(jīng)典而優(yōu)雅的應(yīng)用是交換變量的值:
用 * 運(yùn)算符把一個(gè)可迭代對(duì)象拆開作為函數(shù)的參數(shù),例如Python的內(nèi)置函數(shù)pmod接收兩個(gè)數(shù)字類型的參數(shù),返回商和余數(shù)。以下范例將使用 * 將元組傳入函數(shù)。
輸出為:
有些函數(shù)有多個(gè)返回值,將其賦給一個(gè)變量時(shí),變量類型即是元組:
輸出為:
zip是Python的內(nèi)置函數(shù),能夠接收兩個(gè)或多個(gè)序列,并組成一個(gè)元組列表,在Python3中會(huì)返回一個(gè)迭代器,如下所示:
輸出為:
元組當(dāng)然也支持一些常規(guī)操作,如對(duì)于元組 a = (1, 'y', 5, 5, 'x') :
上述內(nèi)容不僅涵蓋了元組的基本操作,同時(shí)也結(jié)合了實(shí)際工作中常搭配使用的其他函數(shù)、運(yùn)算符等。在回顧這些知識(shí)時(shí)主要參考了兩本經(jīng)典的Python編程書籍:《流暢的Python》和《像計(jì)算機(jī)科學(xué)家一樣思考Python》,有興趣的朋友可以深入閱讀!
希望這篇文章對(duì)你有幫助,下回將總結(jié)Python列表的使用技巧。
[1]《流暢的Python》:
python元組和序列的區(qū)別:
1、元組作為很多內(nèi)置函數(shù)和序列類型方法的返回值存在,也就是說(shuō),在使用某些函數(shù)或者方法時(shí),它的返回值是元組類型,因此你必須對(duì)元組進(jìn)行處理。
2、元組比列表的訪問和處理速度更快,因此,當(dāng)需要對(duì)指定元素進(jìn)行訪問,且不涉及修改元素的操作時(shí),建議使用元組。
3、元組可以在映射(和集合的成員)中當(dāng)做“鍵”使用,而列表不行。
4、列表是動(dòng)態(tài)數(shù)組,它們可變且可以重設(shè)長(zhǎng)度(改變其內(nèi)部元素的個(gè)數(shù))。
5、元組是靜態(tài)數(shù)組,它們不可變,且其內(nèi)部數(shù)據(jù)一旦創(chuàng)建便無(wú)法改變。
6、元組緩存于Python運(yùn)行時(shí)環(huán)境,這意味著我們每次使用元組時(shí)無(wú)須訪問內(nèi)核去分配內(nèi)存。
更多Python知識(shí)請(qǐng)關(guān)注Python視頻教程欄目。
元組是不可變的,即元組的項(xiàng)不能被修改。元組用圓括號(hào)“()”括起來(lái),并用逗號(hào)“,”來(lái)分隔其中的項(xiàng)。
例如,下面的元組包含了三個(gè)不同數(shù)據(jù)類型的項(xiàng):
與列表不同的是,元組一旦創(chuàng)建就不可修改,如果嘗試修改,Python解釋器會(huì)報(bào)錯(cuò):
元組是一種序列類型,因此,上一節(jié)介紹的通用序列操作元組也都支持,此處不再贅述。下面要介紹的是元組的另外一些用法或特性。
1、 創(chuàng)建元組
在創(chuàng)建元組時(shí),可以不用加圓括號(hào)(除非它是其他數(shù)據(jù)類型的一部分,如一個(gè)在列表中的元組,此時(shí)必須加圓括號(hào)):
可以使用元組的工廠函數(shù)tuple()創(chuàng)建元組。如果要?jiǎng)?chuàng)建一個(gè)空的元組,可以使用不包含任何項(xiàng)的圓括號(hào)或者是沒有參數(shù)的tuple()函數(shù):
tuple()函數(shù)也可以有參數(shù),且參數(shù)必須為可迭代對(duì)象:
創(chuàng)建只有一個(gè)項(xiàng)的元組時(shí)有個(gè)“小陷阱”,即用圓括號(hào)創(chuàng)建元組時(shí),如果括號(hào)中只有一個(gè)項(xiàng),而沒有逗號(hào),那么創(chuàng)建的并不是元組,而是這個(gè)項(xiàng)本身的類型:
創(chuàng)建只有一個(gè)項(xiàng)的元組,應(yīng)該在該項(xiàng)的后面緊跟著一個(gè)逗號(hào)(或者使用tuple()函數(shù)):
2、 嵌套元組
元組與列表一樣,可以嵌套,同樣元組中也可以包含列表:
關(guān)于Python的基礎(chǔ)問題可以看下這個(gè)網(wǎng)頁(yè)的視頻教程,網(wǎng)頁(yè)鏈接,希望我的回答能幫到你。