最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡(jiǎn)單談?wù)凱ython中的元祖(Tuple)和字典(Dict)

 更新時(shí)間:2017年04月21日 15:48:02   作者:Vimiix  
這篇文章主要介紹了關(guān)于Python中元祖(Tuple)和字典(Dict)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。

前言

本文記錄了對(duì)于Python的數(shù)據(jù)類型中元祖(Tuple)和字典(Dict)的一些認(rèn)識(shí),以及部分內(nèi)置方法的介紹。下面話不多說,來(lái)看看詳細(xì)的介紹吧。

元祖 Tuple

特點(diǎn):元祖內(nèi)的數(shù)據(jù)不可變

一個(gè)元素的定義:T = (1,)

>>> T=(1,)
>>> type(T)
<type 'tuple'>

特殊的元祖:”可變”的元祖

>>> T=(1,2,3,[1,2,3])
>>> T[3][2] = 'vimiix'
>>> T
(1, 2, 3, [1, 2, 'vimiix'])

看上去元祖發(fā)生了變化,但真正變化的是[1,2,3]這個(gè)列表內(nèi)的元素發(fā)生了變化,但是這個(gè)列表在T這個(gè)元祖中的內(nèi)存地址是沒有改變的。

結(jié)論:實(shí)際是元祖的元素包含了可變的元素,但是元祖中元素的內(nèi)存地址沒有變,所以所謂的元祖不可變是指元素指向的內(nèi)存地址是不變

字典 Dict

特點(diǎn):

      1、字典是Python中唯一的映射類型

      2、字典的鍵(KEY)必須是不可變的對(duì)象—>因?yàn)樽值湓谟?jì)算機(jī)中是通過Hash算法存儲(chǔ)的,Hash的特點(diǎn)是由KEY來(lái)計(jì)算存儲(chǔ)的,如果KEY可變,將會(huì)導(dǎo)致數(shù)據(jù)混亂。

>>> D = {1:3,'vimiix':88}
>>> type(D)
<type 'dict'>
>>> D={[1,2,3]:100}
Traceback (most recent call last):
 File "<pyshell#15>", line 1, in <module>
 D={[1,2,3]:100}
TypeError: unhashable type: 'list' (這里提示list是不能被Hash計(jì)算的數(shù)據(jù)類型,因?yàn)閘ist是可變的數(shù)據(jù)類型)
>>>

由此錯(cuò)誤可以看出,字典的鍵只能使用不可變的對(duì)象(元祖是可以的),但是對(duì)于字典的值沒有此要求

鍵值對(duì)用冒號(hào)‘:'分割,每個(gè)對(duì)之間用逗號(hào)‘,'分開,所有這些用花括號(hào)‘{}'包含起來(lái)

字典中的鍵值對(duì)是沒有順序的,故不可以用索引訪問,只可以通過鍵取得所對(duì)應(yīng)的值

拓展:如果定義的過程中,出現(xiàn)相同的鍵,最后存儲(chǔ)的時(shí)候回保留最后的一個(gè)鍵值對(duì))

>>> D= {1:2,1:3}
>>> D
{1: 3}

創(chuàng)建與訪問

第一種創(chuàng)建方式:直接通過花括號(hào)包含鍵值對(duì)來(lái)創(chuàng)建

第二種創(chuàng)建方式:利用內(nèi)置函數(shù)dict()來(lái)創(chuàng)建,注意!dict()括號(hào)內(nèi)只能有一個(gè)參數(shù),要把所有的鍵值對(duì)括起來(lái)

(1)

>>> D =dict((1,2),(3,4),(5,6))
Traceback (most recent call last):
 File "<pyshell#20>", line 1, in <module>
 D =dict((1,2),(3,4),(5,6))
TypeError: dict expected at most 1 arguments, got 3
>>> D =dict(((1,2),(3,4),(5,6)))
>>> D
{1: 2, 3: 4, 5: 6}

(2)還可以指定關(guān)鍵字參數(shù)

>>> D=dict(vimiix = 'VIMIIX')
>>> D
{'vimiix': 'VIMIIX'}

這里的小寫‘vimiix'不可以加單引號(hào),加了會(huì)報(bào)錯(cuò)!

(3)dict的內(nèi)置方法 .fromkeys 有兩個(gè)參數(shù)

>>> D = dict.fromkeys((1,'vimiix'),('common','value'))
>>> D
{1: ('common', 'value'), 'vimiix': ('common', 'value')}
>>>

實(shí)際的生產(chǎn)過程中,都是使用字典生成式來(lái)創(chuàng)建,根據(jù)現(xiàn)有的數(shù)據(jù)來(lái)生成對(duì)應(yīng)的數(shù)據(jù),有數(shù)據(jù)才有意義。

字典生成式栗子:

>>> L1 = [1,2,3]
>>> L2 = ['a','v','vimiix']
>>> D={a:b for a in L1 for b in L2}
>>> D
{1: 'vimiix', 2: 'vimiix', 3: 'vimiix'}

此處只是一個(gè)生成式的栗子,但并不是理想答案,待學(xué)習(xí)如何生成一一對(duì)應(yīng)的鍵值對(duì)

字典的內(nèi)置方法:

get() :

獲取鍵所對(duì)應(yīng)的值,如果未找到返回None,找到返回對(duì)應(yīng)的值

pop(key) :

彈出key對(duì)應(yīng)的值,默認(rèn)最后一個(gè)

popitem() :

隨機(jī)返回并刪除字典中的一對(duì)鍵和值(項(xiàng))。為什么是隨機(jī)刪除呢?因?yàn)樽值涫菬o(wú)序的,沒有所謂的“最后一項(xiàng)”或是其它順序。在工作時(shí)如果遇到需要逐一刪除項(xiàng)的工作,用popitem()方法效率很高。

update() :

更新或者新增一個(gè)鍵值對(duì)(有則改之無(wú)則加勉)

>>> D.update({'newitem':'update'})
>>> D
{'newitem': 'update', 1: 'vimiix', 2: 'vimiix', 3: 'vimiix'}

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

最新評(píng)論

巨野县| 保康县| 灵山县| 平利县| 万盛区| 康保县| 涿鹿县| 嘉禾县| 奉贤区| 恩平市| 南开区| 沂水县| 永兴县| 寿宁县| 筠连县| 麻栗坡县| 即墨市| 六枝特区| 洮南市| 确山县| 中山市| 泽普县| 道真| 濮阳县| 内江市| 尉氏县| 鄂托克旗| 翁源县| 崇信县| 大名县| 富裕县| 安达市| 遂昌县| 长岛县| 丽江市| 东乡县| 江西省| 弥勒县| 宜兴市| 防城港市| 左权县|