溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python字典操作有哪些

發(fā)布時(shí)間:2021-12-17 15:01:54 來(lái)源:億速云 閱讀:157 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“python字典操作有哪些”,在日常操作中,相信很多人在python字典操作有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”python字典操作有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

key是否存在


使用 in 關(guān)鍵字判斷key是否存在字典中

d = {"name": "zhang", "age":10}
key = "gender"
if key in d:
pass

不要使用 key in d.keys(), 這是一種畫蛇添足的操作,因?yàn)閐.keys()會(huì)返回一個(gè)新的列表對(duì)象,導(dǎo)致內(nèi)存最大。

合并字典

>>> x = {'a': 1, 'b': 2}
>>> y = {'b': 3, 'c': 4}
>>> {**x, **y}
{'a': 1, 'b': 3, 'c': 4}

返回新的字典對(duì)象,x和y都不會(huì)改變,這是使用了PEP448范化解包操作, 如果 x 和 y 有相同的key, 那么y會(huì)覆蓋x。 如果使用字典的update 方法,將修改原來(lái)的對(duì)象,例如:

>>> y.update(x)
>>> y
{'b': 2, 'c': 4, 'a': 1}

迭代字典

z = {'b': 2, 'c': 4, 'a': 1}
>>> for key, value in z.items():
print(key, value)
b 2
c 4
a 1

也可以直接對(duì)字典z進(jìn)行迭代,每次迭代返回的是key,前面那種操作 z.items()會(huì)返回一個(gè)新的對(duì)象。

>>> for key in z:
   print(key, z[key])
b 2
c 4
a 1

字典推導(dǎo)

使用字典推導(dǎo)式快速構(gòu)建字典對(duì)象

>>> fruits = ['apple', 'mango', 'banana','cherry']
>>> {f:len(f) for f in fruits}
{'apple': 5, 'mango': 5, 'banana': 6, 'cherry': 6}

字典排序

字典本質(zhì)上是個(gè)無(wú)序的容器對(duì)象(其實(shí)Python3.6開始支持有序,不過(guò)這個(gè)有序是指按照key的添加順序),如果我們要對(duì)字典的 key 或者 value 排序,一般是將其轉(zhuǎn)換為list,再按照key或者value排序。

>>> d = {"c": 3, "a": 1, "f":6, "b": 0}
# 按照value排序
>>> sorted(d.items(), key=operator.itemgetter(1))
[('b', 0), ('a', 1), ('c', 3), ('f', 6)]
# 按照key排序
>>> sorted(d.items(), key=operator.itemgetter(0))
[('a', 1), ('b', 0), ('c', 3), ('f', 6)]
>>>

默認(rèn)值初始化字典

統(tǒng)計(jì)列表中每個(gè)字母出現(xiàn)的次數(shù)

>>> chars = ['a', 'b','c','a','d','c']
>>> data = {}
>>> for c in chars:
...     if c in data:
...         data[c]+=1
...     else:
...         data[c] = 0
...
>>> data
{'a': 1, 'b': 0, 'c': 1, 'd': 0}

可以使用 collections.defaultdict 通過(guò)工廠函數(shù)提供初始化默認(rèn)值

chars = ['a', 'b','c','a','d','c']

dd = defaultdict(int)
for c in chars:
dd[c] += 1

>>>defaultdict(<class 'int'>, {'a': 2, 'b': 1, 'c': 2, 'd': 1})

defaultdict 是 dict 的子類,繼承了 dict 的所有特性, 如果想要初始值為1 怎么辦? 可以用lambda函數(shù)來(lái)指定

dd = defaultdict(lambda: 1)
for c in chars:
dd[c] += 1

print(dd)
>>> defaultdict(<function <lambda> at 0x01226B28>, {'a': 3, 'b': 2, 'c': 3, 'd': 2})

到此,關(guān)于“python字典操作有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI