Python列表及元組的相同點(diǎn)
在溆浦等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),溆浦網(wǎng)站建設(shè)費(fèi)用合理。
1. 索引相同,從左到右都為0~n-1;
2. 拼接相同,都可以用+拼接;
3. 計(jì)數(shù)相同,都使用len()函數(shù)統(tǒng)計(jì)元素個(gè)數(shù)、使用count()函數(shù)統(tǒng)計(jì)指定元素的出現(xiàn)次數(shù);
4. 都屬于有序序列;
5. 都可以使用del刪除;
6. 都可以使用*來使本身重復(fù);
7. 可以強(qiáng)制轉(zhuǎn)換且切片方法一致;
8. 都可以使用for循環(huán)來進(jìn)行元素遍歷、索引遍歷以及枚舉遍歷;
9. 使用index()方法獲取指定元素的索引;
10. 使用運(yùn)算符in測(cè)試是否包括某個(gè)元素。
Python列表及元組的不同點(diǎn)
1. 類型不同,元組類型為tuple,列表類型為lsit;
2. 修改方式不同,元組不能修改,列表可以根據(jù)索引來修改元素值;
3. 刪除方式不同,列表使用pop()等函數(shù)刪除元素,而元組不能刪除元素,只能用del刪除整個(gè)元組;
4. 查找方式不同,列表只能用Index()函數(shù)來查看,元組只能用index()函數(shù)來查看。
所以這篇文章,我們先來回顧和總結(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)。
在此,我們先從元組開始說起。
元組區(qū)別于列表的顯著特征之一就是它不能被修改,但其另外一個(gè)作用就是 用于沒有字段名的記錄 [1] 。因?yàn)楹笳呓?jīng)常被忽略,我們先來看看元組作為記錄的作用。
使用括號(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》:
元組數(shù)據(jù)類型也是序列類型,和列表類型十分的相似,同樣可以根據(jù)索引來獲取元素,并且一樣可以使用切片操作,和列表的不同之處在于,元組是 不可變類型 ,一旦創(chuàng)建是無法修改里面的值的。
元組是用小括號(hào)表示,數(shù)據(jù)項(xiàng)與數(shù)據(jù)項(xiàng)之間用逗號(hào)隔開,并且對(duì)于元組中數(shù)據(jù)的類型是沒有限制的
值得注意的是當(dāng)元組中只有一個(gè)元素的時(shí)候,我們必須在末尾加逗號(hào)
之前講了列表和字符串,都可以通過索引的方式去訪問,元組也一樣,因?yàn)槿叨际切蛄蓄愋?,訪問的方式和列表、字符串的方式一樣,這里就不在闡述了
元組的內(nèi)置函數(shù)較少,并且十分簡(jiǎn)單
1.max、min最大值和最小值函數(shù)
2.tuple將 序列類型 轉(zhuǎn)換成元組類型
以上內(nèi)容是元組中的主要內(nèi)容,后面當(dāng)我們用到的時(shí)候我們?cè)僮銎渌慕忉?/p>
一:元組(tuple)
1、元組是不可改變的序列,同list一樣,元組可以存放任意類型的元素,一旦元組生成,則它不可以改變(包括增、刪、改)。
2、元組的表示方式:用小括號(hào)()括起來,單個(gè)元素括起來用逗號(hào)(,)區(qū)分是單個(gè)對(duì)象還是元組
3、元組的創(chuàng)建:
創(chuàng)建空元組的字符值:t=()
創(chuàng)建非空元組的字面值:
t=200,
t=(20,)
t=(1,2,3)
t=100,200,300
4、元組的構(gòu)造函數(shù)(tuple)
A:tuple()生成一個(gè)空的元組,等同于()
B:tuple(iterable)用可迭代對(duì)象生成一個(gè)元組
示例:
t=tuple()
t=tuple(range(10))
t=tuple(‘hello’)
t=tuple([])
二:元組的用法
1、元組的算術(shù)運(yùn)算:(用法與列表的用法完全相同)
+=**=
例:定義兩個(gè)元組,與其相加,再用得到的新元組乘以2,與列表對(duì)比一下,看看有何不同?(分析:兩原組相加,會(huì)把第二個(gè)元組的元素放在第一個(gè)元組元素的后面,兩元組相乘,會(huì)重復(fù)原元組元素的個(gè)數(shù),乘以幾,就重復(fù)幾次)
2、元組的比較運(yùn)算:
====!=
3、in/not in
索引取值
切片取值
規(guī)則與列表完全相同
區(qū)別:
元組是不可變對(duì)象,不支持索引賦值和切片賦值
4、元組的方法
t.index(v[,begin[,end]])----用于獲取元組中V所在的索引位置
t.count(v)----用于獲取元組中V的個(gè)數(shù)
例:定義一個(gè)元組字面值,查看某個(gè)值在元組的索引位置,并統(tǒng)計(jì)其元組中某個(gè)數(shù)出現(xiàn)的個(gè)數(shù)。
5、元組中的三個(gè)構(gòu)造函數(shù)和序列函數(shù)
Str(obj)
List(iterable)
Tuple(iterable)
序列函數(shù):len,max,min,sum,all,any
元組是不可變的,即元組的項(xiàng)不能被修改。元組用圓括號(hào)“()”括起來,并用逗號(hào)“,”來分隔其中的項(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)頁的視頻教程,網(wǎng)頁鏈接,希望我的回答能幫到你。
學(xué)習(xí)Python元組,有哪些必須要掌握的內(nèi)容?
1.Python元組
定義
元組是Python的一種內(nèi)建數(shù)據(jù)結(jié)構(gòu)。關(guān)于元組:
1、元組屬于序列,可以存放任意元素(任意類型對(duì)象),且有序(前后位置關(guān)系)。
2、元組支持整數(shù)索引訪問其中的數(shù)據(jù),也支持切片。
3、元組和列表不同是,元組不可變,列表可變。
元組不可變,某些操作比列表高效。
創(chuàng)建元組
可以用以下兩種方法創(chuàng)建元組:
1、使用()創(chuàng)建
2、使用構(gòu)造函數(shù)tuple()
圖:使用()創(chuàng)建元組
使用()可以創(chuàng)建元組,元組元素間使用”,”分隔,元組內(nèi)部元素可以是任意元素,也可以是元組。
圖:創(chuàng)建元組代碼示例
元組不可變除了不能修改,也不能刪除元組元素,但刪除與元組綁定的變量是沒問題的。
圖:元組不可變
使用()方式創(chuàng)建只有一個(gè)元素的元組時(shí)要注意,因?yàn)橐粋€(gè)元素使用()括起來,表示元素本身,如100, (100),兩者等價(jià),如果創(chuàng)建只包含100的元組應(yīng)該使用:(100,)方式。
圖:使用()創(chuàng)建只有一個(gè)元素的元組
使用構(gòu)造函數(shù)tuple()創(chuàng)建元組。了解更多信息可以使用help(tuple)來查看具體幫助內(nèi)容。
圖:tuple函數(shù)幫助
1、tuple()如果沒有參數(shù)創(chuàng)建一個(gè)空元組。
2、tuple(可迭代對(duì)象) 由可迭代對(duì)象創(chuàng)建一個(gè)元組,如字符串,列表。如果參數(shù)是元組將返回該元組。
圖:使用tuple函數(shù)創(chuàng)建元組
2.元組的訪問
和字符串列表一樣,元組支持使用整數(shù)索引(下標(biāo)方式訪問),也支持切片方式訪問元組的元素。
下標(biāo)索引如果是正整數(shù)則從0開始表示第一個(gè)元素,…… 最有一個(gè)元素用 元組長(zhǎng)度-1表示;如果使用負(fù)整數(shù)做下標(biāo),-1表示最后一個(gè)元素,-2表示倒數(shù)第二個(gè)元素,…… 負(fù)的長(zhǎng)度表示第一個(gè)元素。
?。。⌒枰⒁獾氖窍聵?biāo)索引不能越界?。?!
1、使用索引訪問:
圖:使用索引訪問元組元素
2、切片訪問:
圖:使用切片訪問元組
3.使用內(nèi)建的常用函數(shù)操作元組
常用內(nèi)建函數(shù)len、max、min、sum、reversed可以操作元組,函數(shù)解釋如下:
操作示例如下:
注意事項(xiàng):
使用min,max,sum函數(shù)操作元組,元組元素類型能被函數(shù)接受才可以,否則將報(bào)異常等錯(cuò)誤。
4.元組常用方法
主要有count和index方法:
count返回元組中對(duì)應(yīng)值的個(gè)數(shù),index返回對(duì)應(yīng)值的位置(索引)。
5.元組運(yùn)算
元組支持 + 連接, * 復(fù)制運(yùn)算,in /not in 運(yùn)算
圖:元組運(yùn)算
6.序列
字符串,元組,列表都屬于Python的序列結(jié)構(gòu),序列具有很多相同的屬性和操作方法,如:序列中的每個(gè)元素被分配一個(gè)序號(hào)(位置,也叫索引),序號(hào)(索引)從0開始,依次類推;序列都支持切片操作等等。
圖:序列通用操作
Python內(nèi)置了多種序列結(jié)構(gòu):字符串、列表、元組、Unicode字符串、buffer對(duì)象、range對(duì)象。序列是Python中一種重要的數(shù)據(jù)結(jié)構(gòu),必須要掌握,也很容易掌握。