元組是不可變的,即元組的項不能被修改。元組用圓括號“()”括起來,并用逗號“,”來分隔其中的項。
10年積累的網站設計、成都網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站設計后付款的網站建設流程,更有乾安免費網站建設讓你可以放心的選擇與我們合作。
例如,下面的元組包含了三個不同數據類型的項:
與列表不同的是,元組一旦創(chuàng)建就不可修改,如果嘗試修改,Python解釋器會報錯:
元組是一種序列類型,因此,上一節(jié)介紹的通用序列操作元組也都支持,此處不再贅述。下面要介紹的是元組的另外一些用法或特性。
1、 創(chuàng)建元組
在創(chuàng)建元組時,可以不用加圓括號(除非它是其他數據類型的一部分,如一個在列表中的元組,此時必須加圓括號):
可以使用元組的工廠函數tuple()創(chuàng)建元組。如果要創(chuàng)建一個空的元組,可以使用不包含任何項的圓括號或者是沒有參數的tuple()函數:
tuple()函數也可以有參數,且參數必須為可迭代對象:
創(chuàng)建只有一個項的元組時有個“小陷阱”,即用圓括號創(chuàng)建元組時,如果括號中只有一個項,而沒有逗號,那么創(chuàng)建的并不是元組,而是這個項本身的類型:
創(chuàng)建只有一個項的元組,應該在該項的后面緊跟著一個逗號(或者使用tuple()函數):
2、 嵌套元組
元組與列表一樣,可以嵌套,同樣元組中也可以包含列表:
關于Python的基礎問題可以看下這個網頁的視頻教程,網頁鏈接,希望我的回答能幫到你。
學習Python元組,有哪些必須要掌握的內容?
1.Python元組
定義
元組是Python的一種內建數據結構。關于元組:
1、元組屬于序列,可以存放任意元素(任意類型對象),且有序(前后位置關系)。
2、元組支持整數索引訪問其中的數據,也支持切片。
3、元組和列表不同是,元組不可變,列表可變。
元組不可變,某些操作比列表高效。
創(chuàng)建元組
可以用以下兩種方法創(chuàng)建元組:
1、使用()創(chuàng)建
2、使用構造函數tuple()
圖:使用()創(chuàng)建元組
使用()可以創(chuàng)建元組,元組元素間使用”,”分隔,元組內部元素可以是任意元素,也可以是元組。
圖:創(chuàng)建元組代碼示例
元組不可變除了不能修改,也不能刪除元組元素,但刪除與元組綁定的變量是沒問題的。
圖:元組不可變
使用()方式創(chuàng)建只有一個元素的元組時要注意,因為一個元素使用()括起來,表示元素本身,如100, (100),兩者等價,如果創(chuàng)建只包含100的元組應該使用:(100,)方式。
圖:使用()創(chuàng)建只有一個元素的元組
使用構造函數tuple()創(chuàng)建元組。了解更多信息可以使用help(tuple)來查看具體幫助內容。
圖:tuple函數幫助
1、tuple()如果沒有參數創(chuàng)建一個空元組。
2、tuple(可迭代對象) 由可迭代對象創(chuàng)建一個元組,如字符串,列表。如果參數是元組將返回該元組。
圖:使用tuple函數創(chuàng)建元組
2.元組的訪問
和字符串列表一樣,元組支持使用整數索引(下標方式訪問),也支持切片方式訪問元組的元素。
下標索引如果是正整數則從0開始表示第一個元素,…… 最有一個元素用 元組長度-1表示;如果使用負整數做下標,-1表示最后一個元素,-2表示倒數第二個元素,…… 負的長度表示第一個元素。
?。?!需要注意的是下標索引不能越界?。。?/p>
1、使用索引訪問:
圖:使用索引訪問元組元素
2、切片訪問:
圖:使用切片訪問元組
3.使用內建的常用函數操作元組
常用內建函數len、max、min、sum、reversed可以操作元組,函數解釋如下:
操作示例如下:
注意事項:
使用min,max,sum函數操作元組,元組元素類型能被函數接受才可以,否則將報異常等錯誤。
4.元組常用方法
主要有count和index方法:
count返回元組中對應值的個數,index返回對應值的位置(索引)。
5.元組運算
元組支持 + 連接, * 復制運算,in /not in 運算
圖:元組運算
6.序列
字符串,元組,列表都屬于Python的序列結構,序列具有很多相同的屬性和操作方法,如:序列中的每個元素被分配一個序號(位置,也叫索引),序號(索引)從0開始,依次類推;序列都支持切片操作等等。
圖:序列通用操作
Python內置了多種序列結構:字符串、列表、元組、Unicode字符串、buffer對象、range對象。序列是Python中一種重要的數據結構,必須要掌握,也很容易掌握。
除了元組是不可變的之外,還應有語義上的區(qū)別來指導它們的用法。元組是異構數據結構(即它們的條目具有不同的含義),而列表是同類序列。元組具有結構,列表具有順序。
使用這種區(qū)別可以使代碼更加明確和易于理解。
一個示例是成對的頁和行號,以成對參考書中的位置,如:
my_location = (42, 11) # page number, line number
然后,可以將其用作字典中的鍵來存儲有關位置的注釋。另一方面,列表可用于存儲多個位置。自然地,人們可能想在列表中添加或刪除位置,因此使列表可變是有意義的。另一方面,從現有位置添加或刪除項目沒有意義-因此,元組是不可變的。
在某些情況下,可能想更改現有位置元組中的項目,例如在頁面的各行中進行迭代時。但是元組不變性迫使您為每個新值創(chuàng)建一個新的位置元組。從表面上看,這似乎很不方便,但是使用這樣的不可變數據是值類型和函數式編程技術的基石,它可以具有很多優(yōu)點。
官方Python文檔也提到了這一點
“組是不可變的,并且通常包含一個異類序列…”。
在像Haskell這樣的靜態(tài)類型語言中,元組中的值通常具有不同的類型,并且元組的長度必須固定。在列表中,所有值都具有相同的類型,并且長度不是固定的。因此區(qū)別非常明顯。
python元組和序列的區(qū)別:
1、元組作為很多內置函數和序列類型方法的返回值存在,也就是說,在使用某些函數或者方法時,它的返回值是元組類型,因此你必須對元組進行處理。
2、元組比列表的訪問和處理速度更快,因此,當需要對指定元素進行訪問,且不涉及修改元素的操作時,建議使用元組。
3、元組可以在映射(和集合的成員)中當做“鍵”使用,而列表不行。
4、列表是動態(tài)數組,它們可變且可以重設長度(改變其內部元素的個數)。
5、元組是靜態(tài)數組,它們不可變,且其內部數據一旦創(chuàng)建便無法改變。
6、元組緩存于Python運行時環(huán)境,這意味著我們每次使用元組時無須訪問內核去分配內存。
更多Python知識請關注Python視頻教程欄目。
所以這篇文章,我們先來回顧和總結Python數據結構里常用操作。Python中常見的數據結構可以統(tǒng)稱為容器(container)。序列(如列表和元組)、映射(如字典)以及集合(set)是三類主要的容器。而扁平序列如str、bytes、bytearray、memoryview 和 array.array等不在這篇文章的討論范圍內。
在此,我們先從元組開始說起。
元組區(qū)別于列表的顯著特征之一就是它不能被修改,但其另外一個作用就是 用于沒有字段名的記錄 [1] 。因為后者經常被忽略,我們先來看看元組作為記錄的作用。
使用括號就可以定義一個元組。元組中的每個元素都存放了記錄中一個字段的數據,外加這個字段的位置。正是這個位置信息給數據賦予了意義。下面的例子中,元組就被當作記錄加以利用:
輸出為:
上述for循環(huán)中的操作提取了元組中的元素,也叫作拆包(unpacking)。平行賦值是對元組拆包很好的應用,示例如下:
還有一個經典而優(yōu)雅的應用是交換變量的值:
用 * 運算符把一個可迭代對象拆開作為函數的參數,例如Python的內置函數pmod接收兩個數字類型的參數,返回商和余數。以下范例將使用 * 將元組傳入函數。
輸出為:
有些函數有多個返回值,將其賦給一個變量時,變量類型即是元組:
輸出為:
zip是Python的內置函數,能夠接收兩個或多個序列,并組成一個元組列表,在Python3中會返回一個迭代器,如下所示:
輸出為:
元組當然也支持一些常規(guī)操作,如對于元組 a = (1, 'y', 5, 5, 'x') :
上述內容不僅涵蓋了元組的基本操作,同時也結合了實際工作中常搭配使用的其他函數、運算符等。在回顧這些知識時主要參考了兩本經典的Python編程書籍:《流暢的Python》和《像計算機科學家一樣思考Python》,有興趣的朋友可以深入閱讀!
希望這篇文章對你有幫助,下回將總結Python列表的使用技巧。
[1]《流暢的Python》: