一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類(lèi)導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python中列表、字典、元組數(shù)據(jù)結(jié)構(gòu)的簡(jiǎn)單學(xué)習(xí)筆記

Python中列表、字典、元組數(shù)據(jù)結(jié)構(gòu)的簡(jiǎn)單學(xué)習(xí)筆記

2020-08-17 11:15Flyaway Python

這篇文章主要介紹了Python中列表、字典、元組數(shù)據(jù)結(jié)構(gòu)的簡(jiǎn)單學(xué)習(xí)筆記,文中講到了字典在Python3中特性和操作方法的一些變化,需要的朋友可以參考下

列表

列表是Python中最具靈活性的有序集合對(duì)象類(lèi)型。與字符串不同的是,列表可以包含任何類(lèi)型的對(duì)象:數(shù)字、字符串甚至其他列表。列表是可變對(duì)象,它支持原地修改的操作。

Python的列表是:

  • 任意對(duì)象的有序集合
  • 通過(guò)偏移讀取
  • 可變長(zhǎng)度、異構(gòu)以及任意嵌套
  • 屬于可變序列的分類(lèi)
  • 對(duì)象引用數(shù)組(列表中的存儲(chǔ)的是對(duì)象的引用,而不是對(duì)象的拷貝)

實(shí)際應(yīng)用中的列表

>>基本列表操作
由于列表是序列,它支持很多與字符串相同的操作。列表對(duì)”+”和”*“操作的響應(yīng)與字符串很相似,兩個(gè)操作的意思也是合并和重復(fù),只不過(guò)是一個(gè)新的列表,而不是一個(gè)字符串。

>>索引、分片和矩陣
對(duì)于列表而言,索引和分片操作與字符串中的操作基本相同。然而對(duì)列表進(jìn)行索引的結(jié)果就是你指定的偏移處的對(duì)象(不管是什么類(lèi)型),而對(duì)列表分片時(shí)往往返回一個(gè)新的列表。

?
1
matrix = [[1,2,3],[4,5,6],[7,8,9]]

上述代碼定義了一個(gè)3*3的二維矩陣。

>>原處修改列表
索引與分片的賦值

當(dāng)使用列表的時(shí)候,可以將它賦值給一個(gè)特定項(xiàng)(偏移)或整個(gè)片段(分片)來(lái)改變它的內(nèi)容,索引和分片的賦值都是原地修改,它們對(duì)列表進(jìn)行直接修改,而不是生成一個(gè)新的列表作為結(jié)果.Python中的索引賦值與C及大多數(shù)其他語(yǔ)言極為相似——Python用一個(gè)新值取代指定偏移的對(duì)象引用

列表方法的調(diào)用

最常用的列表方法是append,它能夠簡(jiǎn)單地將一個(gè)單項(xiàng)(對(duì)象引用)加至列表末端。與合并不同的是,append允許傳入單一對(duì)象而不是列表。L.append(X)與L+[X]的結(jié)果類(lèi)似,不同的是,前者會(huì)原地修改L,而后者會(huì)生成新的列表。 另一個(gè)比較常用的方法就是sort,它原地對(duì)列表進(jìn)行排序。sort是使用Python標(biāo)準(zhǔn)的比較檢驗(yàn)作為默認(rèn)值(在這里指字符串比較),而且以遞增的順序進(jìn)行排序。另外,我們可以通過(guò)傳入一個(gè)關(guān)鍵字參數(shù)來(lái)修改排序行為——這是指定按名稱(chēng)傳遞的函數(shù)調(diào)用中特殊的”name=value”語(yǔ)言。

需要注意的是:要當(dāng)心append和sort是原地修改列表對(duì)象的,方法的返回結(jié)果并沒(méi)有返回列表(從技術(shù)上講,兩者的返回值都是None)。如果編寫(xiě)類(lèi)似L=L.append(X)的語(yǔ)句,將不會(huì)得到修改后的值(實(shí)際上,會(huì)失去整個(gè)列表的引用)。

  • reverse:原地反轉(zhuǎn)列表
  • extend:在末端插入多個(gè)元素
  • pop:刪除最后一個(gè)元素,同時(shí)返回被刪除的值
  • remove:通過(guò)值刪除某個(gè)元素
  • insert:在偏移處插入某個(gè)元素
  • index:查找某元素的偏移

字典

如果把列表看做是有序的對(duì)象集合,那么就可以把字典當(dāng)成是無(wú)序的集合,它們主要的差別就在于:字典當(dāng)中的元素師通過(guò)鍵來(lái)存取的,而不是通過(guò)偏移存取。 Python字典的主要屬性如下:

  • 通過(guò)鍵而不是偏移來(lái)讀取
  • 任意對(duì)象的無(wú)序集合
  • 可變長(zhǎng)、異構(gòu)、任意嵌套
  • 屬于可變映射類(lèi)型
  • 對(duì)象引用表(散列表)(字典中的存儲(chǔ)的是對(duì)象的引用,而不是對(duì)象的拷貝)
  • 實(shí)際應(yīng)用中的字典

>>原處修改字典
與列表相同,向字典中已存在的索引值賦值會(huì)改變與索引相關(guān)聯(lián)的值。然而,與列表不同的是,每當(dāng)對(duì)新字典鍵進(jìn)行賦值(之前沒(méi)有被賦值的鍵),就會(huì)在字典內(nèi)生成一個(gè)新的元素。

>>其他字典的方法

  • keys:返回字典的鍵列表
  • values:返回字典的值列表
  • items:返回字典的(key,value)對(duì)元組
  • update:合并
  • pop:從字典中刪除一個(gè)鍵并返回它的值

>>字典用法注意事項(xiàng)

  • 序列運(yùn)算無(wú)效
  • 對(duì)新索引賦值會(huì)添加項(xiàng)
  • 鍵不一定總是字符串

>>創(chuàng)建字典的其他方法

?
1
2
3
4
5
6
7
8
9
10
#Method1
D = {'name':'mel','age':45}
#Method2
D = {}
D['name']='mel'
D['age']=45
#Method3
D = dict(name='mel',age=45)
#Method4
D = dict([('name','mel'),('age',45)])

以上四種形式都會(huì)建立相同的字典。

>>Python3.0中的字典變化
字典的功能在Python3.0中已經(jīng)有所變化了,具體來(lái)說(shuō),Python3.0中的字典:

  • 支持一種新的字典解析表達(dá)式,這是列表和集合解析的”近親”
  • 對(duì)于D.key,D.values和D.items方法,返回可迭代的視圖,而不是列表
  • 由于前面一點(diǎn),需要新的編碼方式通過(guò)排序鍵來(lái)遍歷
  • 不再直接支持相對(duì)大小比較——取而代之的是手動(dòng)比較
  • 不再有D.has_key方法——相反,使用in成員關(guān)系測(cè)試

字典視圖

在Python3.0中,字典的keys、values和items都返回視圖對(duì)象,而在Python2.6中,它們返回實(shí)際的結(jié)果列表。Python3.0中的字典視圖并非創(chuàng)建后不能改變,它們可以動(dòng)態(tài)地反映在視圖對(duì)象創(chuàng)建之后對(duì)字典做出點(diǎn)修改:

?
1
2
3
4
5
D={'a':1,'b':2,'c':3}
K = D.keys()
V = D.values()
del D['b']
list(K)

上述代碼中,最后一行的結(jié)果是[‘a','c']。

keys方法所返回的對(duì)象類(lèi)似于集合,并且支持交集和并集等常見(jiàn)的操作;values視圖不是這樣,因?yàn)樗鼈儾皇俏ㄒ坏模坏玦tems結(jié)果是的,如果(key,value)對(duì)是唯一的并且可散列的話(huà)。

元組

元組由簡(jiǎn)單的對(duì)象構(gòu)成。元組與列表非常類(lèi)似,只不過(guò)元組不能再原處修改(它們是不可變的),通常是寫(xiě)成圓括號(hào)(而不是方括號(hào))中一系列項(xiàng)。它的屬性有:

  • 任意對(duì)象的有序集合
  • 通過(guò)偏移存取
  • 屬于不可變序列類(lèi)型
  • 固定長(zhǎng)度、異構(gòu)、任意嵌套
  • 對(duì)象引用的數(shù)組

>>實(shí)際應(yīng)用中的元組

元組的特殊語(yǔ)法:逗號(hào)和圓括號(hào)

因?yàn)閳A括號(hào)也可以把表達(dá)式括起來(lái),如果圓括號(hào)里的單一對(duì)象時(shí)元組對(duì)象而不是一個(gè)簡(jiǎn)單的表達(dá)式,需要對(duì)Python進(jìn)行特別說(shuō)明。如果確實(shí)想得到一個(gè)元組,只要在這一單個(gè)元素之后、關(guān)閉圓括號(hào)之前加上一個(gè)逗號(hào)就可以了。

?
1
2
x = (40)
y = (40,)

上述代碼中,第一行的x是一個(gè)整數(shù),第二行的y則是一個(gè)包含了一個(gè)元素40的元組。

轉(zhuǎn)換、方法以及不可變性

元組的操作和字符串及列表是一致的,值得注意的區(qū)別在于”+”、”*“以及分片操作應(yīng)用于元組時(shí)將返回新元組,并且元組不提供字符串、列表和字典中的方法。

>>為什么有了列表還要元組
元組的不可變性提供了某種完整性,這樣你可以確保元組在程序中不會(huì)被另一個(gè)引用修改,而列表就沒(méi)有這樣的保證了。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区在线观看美女 | 美女视频一区二区三区在线 | 国自产精品手机在线视频 | 秋霞午夜伦午夜高清福利片 | 国产精品videosse | 喷奶水榨乳ova动漫无修 | 国产麻豆成91 | 久久精品一卡二卡三卡四卡视频版 | 欧美老人与小伙子性生交 | 男人的天堂日本 | 色呦呦tv| 国产日韩欧美精品在线 | 男男gaygays中国 | 99ri精品| 欧洲vodafonewi喷潮 | 色综合视频一区二区观看 | ai换脸明星造梦工厂忘忧草 | 9丨精品国产高清自在线看 9久热这里只有精品免费 | 国产成人精选免费视频 | 国产高清小视频 | 嗯啊在线观看免费影院 | ai换脸杨颖啪啪免费网站 | 免费看打屁股视频的软件 | 四虎影视4hu最新地址在线884 | 精品综合一区二区三区 | ysl蜜桃色成人麻豆 youwu在线影院 | 火影小南被爆羞羞网站 | 娇妻与公陈峰姚瑶小说在线阅读 | 亚洲免费色图 | 美女日b视频 | 国产一区二区三区日韩 | 91你懂的 | 5555kkkk香蕉在线观看 | ts人妖系列在线专区 | 国产免费一区二区三区免费视频 | 亚洲精品国产精麻豆久久99 | 欧美精品一区二区三区免费 | 大ji吧快给我别停受不了视频 | 91av爱爱| 香蕉久久一区二区不卡无毒影院 | 九九国产在线视频 |