Python 提供的元組與列表類似,不同之處在于元組的元素不能修改。雖然有時候很方便,但因為不能為元組內部的數據進行命名,所以沒有那么直觀。
成都創新互聯公司服務項目包括巴東網站建設、巴東網站制作、巴東網頁制作以及巴東網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,巴東網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到巴東省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
Python 引入了 collections.namedtuple 這個工廠函數,用來構造一個帶字段名的元組。
(1)聲明與實例化
我們一般這樣來構造具名元組:
下面是聲明一個具名元組及其實例化方法的示例:
運行結果:
這里通過 collections.namedtuple 創建了一個具名元組,用來表示一張撲克牌。rank 表示撲克牌點數,suit 表示花色。可以通過字段名或者位置來實例化一個具名元組。這里的 select_card 表示抽到一張黑桃 10。
(2)特有屬性與方法
具名元組還擁有以下這些特有的屬性與方法。
運行結果:
另外,通過 . 語法還可以獲取具名元組中所對應的屬性值:
運行結果:
所以這篇文章,我們先來回顧和總結Python數據結構里常用操作。Python中常見的數據結構可以統稱為容器(container)。序列(如列表和元組)、映射(如字典)以及集合(set)是三類主要的容器。而扁平序列如str、bytes、bytearray、memoryview 和 array.array等不在這篇文章的討論范圍內。
在此,我們先從元組開始說起。
元組區別于列表的顯著特征之一就是它不能被修改,但其另外一個作用就是 用于沒有字段名的記錄 [1] 。因為后者經常被忽略,我們先來看看元組作為記錄的作用。
使用括號就可以定義一個元組。元組中的每個元素都存放了記錄中一個字段的數據,外加這個字段的位置。正是這個位置信息給數據賦予了意義。下面的例子中,元組就被當作記錄加以利用:
輸出為:
上述for循環中的操作提取了元組中的元素,也叫作拆包(unpacking)。平行賦值是對元組拆包很好的應用,示例如下:
還有一個經典而優雅的應用是交換變量的值:
用 * 運算符把一個可迭代對象拆開作為函數的參數,例如Python的內置函數pmod接收兩個數字類型的參數,返回商和余數。以下范例將使用 * 將元組傳入函數。
輸出為:
有些函數有多個返回值,將其賦給一個變量時,變量類型即是元組:
輸出為:
zip是Python的內置函數,能夠接收兩個或多個序列,并組成一個元組列表,在Python3中會返回一個迭代器,如下所示:
輸出為:
元組當然也支持一些常規操作,如對于元組 a = (1, 'y', 5, 5, 'x') :
上述內容不僅涵蓋了元組的基本操作,同時也結合了實際工作中常搭配使用的其他函數、運算符等。在回顧這些知識時主要參考了兩本經典的Python編程書籍:《流暢的Python》和《像計算機科學家一樣思考Python》,有興趣的朋友可以深入閱讀!
希望這篇文章對你有幫助,下回將總結Python列表的使用技巧。
[1]《流暢的Python》:
Python中有六個標準的數據類型:Number(數字),String(字符串),List(列表),Tuple(元組),Set(集合),Dictionary(字典)。其中:Number(數字)、String(字符串)、Tuple(元組)是不可變數據,其余三種是可變數據。
轉義字符
輸出結果
布爾值
布爾值是一個邏輯值,只有真(True)和假(False)
輸出結果
Python數據結構包括列表(list)、元組(tuple)、集合(set)、字典(dict)等,這里主要講解列表,列表有兩個特點:
輸出結果
修改表中元素
輸出結果
列表中插入元素
輸出結果
輸出列表中的元素
輸出結果
元素是否在列表元素中及統計個數
輸出結果
查找某個元素在列表中的位置
輸出結果
順序結構
輸出結果
if 條件 1
輸出結果
if 條件 2
輸出結果
循環結構
輸出結果
循環語句求和
輸出結果
可重復,類型可不同。 類型不同也是跟數組最本質的區別。 python里的列表用“[]”表示:
對比a和b的結果
列表的 --- 增 -- 刪 -- 改 -- 查
循環輸出列表內容,在結尾添加指定的內容
字符串是 Python 中最常用的數據類型。 我們可以使用引號('或")來創建字符串。
元組與列表相似,不一樣之處在于 元組的元素不能修改。
元組使用小括號,列表使用方括號。
元組建立很簡單,只須要在括號中添加元素,并使用逗號隔開便可。
字典是另外一種可變容器模型,且可存儲任意類型對象。
字典的每一個鍵值(key=value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式以下所示:
d = {key1 : value1, key2 : value2 }
字典函數
集合(set)是一個 無序的不重復元素序列。
可使用大括號 { } 或者 set() 函數建立集合,注意:建立一個空集合必須用 set() 而不是 { },由于 { } 是用來建立一個空字典。
它的主要做用以下: 1.去重,把一個列表變成集合,就自動去重了 。2.關系測試,測試兩組數據以前的交集、差集、并集等關系。
關系測試
輸出結果
元素的添加和刪除
python三種核心數據結構如下:
1、列表。list是處理一組有序項目的數據結構,即你可以在一個列表中存儲一個序列的項目。列表中的項目。列表中的項目應該包括在方括號中,這樣python就知道你是在指明一個列表。一旦你創建了一個列表,你就可以添加,刪除,或者是搜索列表中的項目。由于你可以增加或刪除項目,我們說列表是可變的數據類型,即這種類型是可以被改變的,并且列表是可以嵌套的。
2、元組。元組和列表十分相似,不過元組是不可變的。即你不能修改元組。元組通過圓括號中用逗號分隔的項目定義。元組通常用在使語句或用戶定義的函數能夠安全的采用一組值的時候,即被使用的元組的值不會改變。元組可以嵌套。
3、字典。字典類似于你通過聯系人名稱查找地址和聯系人詳細情況的地址簿,即,我們把鍵(名字)和值(詳細情況)聯系在一起。注意,鍵必須是唯一的,就像如果有兩個人恰巧同名的話,你無法找到正確的信息。
學習Python的注意事項。
1、打好基礎。已經選擇了Python這一門學科,就要堅定學下去的決心,打好基礎很重要。也許一開始會覺得這也不懂那也不懂,硬著頭皮堅持下去。因為Python是一個有條理的、強大的面向對象的程序設計語言,學好基礎知識是前提。
2、Python的基礎知識包括:下載、安裝、導入庫、字符串處理、函數使用等等。如果你的英語不是很好,可以通過“譯中文文檔”這個網站進行翻譯整理。當然翻譯很麻煩,如果想省掉翻譯環節,可以報一個培訓班,進行中文無障礙教學。
元組是不可變的,即元組的項不能被修改。元組用圓括號“()”括起來,并用逗號“,”來分隔其中的項。
例如,下面的元組包含了三個不同數據類型的項:
與列表不同的是,元組一旦創建就不可修改,如果嘗試修改,Python解釋器會報錯:
元組是一種序列類型,因此,上一節介紹的通用序列操作元組也都支持,此處不再贅述。下面要介紹的是元組的另外一些用法或特性。
1、 創建元組
在創建元組時,可以不用加圓括號(除非它是其他數據類型的一部分,如一個在列表中的元組,此時必須加圓括號):
可以使用元組的工廠函數tuple()創建元組。如果要創建一個空的元組,可以使用不包含任何項的圓括號或者是沒有參數的tuple()函數:
tuple()函數也可以有參數,且參數必須為可迭代對象:
創建只有一個項的元組時有個“小陷阱”,即用圓括號創建元組時,如果括號中只有一個項,而沒有逗號,那么創建的并不是元組,而是這個項本身的類型:
創建只有一個項的元組,應該在該項的后面緊跟著一個逗號(或者使用tuple()函數):
2、 嵌套元組
元組與列表一樣,可以嵌套,同樣元組中也可以包含列表:
關于Python的基礎問題可以看下這個網頁的視頻教程,網頁鏈接,希望我的回答能幫到你。
Python列表及元組的相同點
1. 索引相同,從左到右都為0~n-1;
2. 拼接相同,都可以用+拼接;
3. 計數相同,都使用len()函數統計元素個數、使用count()函數統計指定元素的出現次數;
4. 都屬于有序序列;
5. 都可以使用del刪除;
6. 都可以使用*來使本身重復;
7. 可以強制轉換且切片方法一致;
8. 都可以使用for循環來進行元素遍歷、索引遍歷以及枚舉遍歷;
9. 使用index()方法獲取指定元素的索引;
10. 使用運算符in測試是否包括某個元素。
Python列表及元組的不同點
1. 類型不同,元組類型為tuple,列表類型為lsit;
2. 修改方式不同,元組不能修改,列表可以根據索引來修改元素值;
3. 刪除方式不同,列表使用pop()等函數刪除元素,而元組不能刪除元素,只能用del刪除整個元組;
4. 查找方式不同,列表只能用Index()函數來查看,元組只能用index()函數來查看。
本文名稱:python元組和函數 python元組常用函數
本文路徑:http://vcdvsql.cn/article18/hhhpdp.html
成都網站建設公司_創新互聯,為您提供Google、搜索引擎優化、外貿網站建設、服務器托管、做網站、軟件開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯