概述
在絕大部分的開(kāi)發(fā)語(yǔ)言中與實(shí)際開(kāi)發(fā)過(guò)程中,Dictionary扮演著舉足輕重的角色。從我們的數(shù)據(jù)模型到服務(wù)器返回的參數(shù)到數(shù)據(jù)庫(kù)的應(yīng)用等等,Dictionary的身影無(wú)處不在。
在Python中,Dictionary是一種可變的容器類型。所謂容器類型,就是我們放置數(shù)據(jù)的地方。不同于List的有序、操作時(shí)對(duì)數(shù)據(jù)類型統(tǒng)一性的要求較嚴(yán)格,Dictionary是一種可變的、不限存儲(chǔ)對(duì)象、無(wú)序的數(shù)據(jù)模型。
字典有著類似列表的高靈活度的特點(diǎn),而與列表通過(guò)偏移索引的存取元素的方式不同,字典是通過(guò)無(wú)序的鍵來(lái)存取鍵值對(duì)的,即字典是任意對(duì)象的無(wú)需集合,可在原處增加或減少,且支持任意深度的嵌套(即可以包含諸如列表,其他的字典等),下面就介紹了Python提供的11個(gè)字典內(nèi)置方法的基本概述及簡(jiǎn)單示例。
| 方法 | 描述 |
|---|---|
| clear | 清除字典中所有鍵值對(duì) |
| copy | 對(duì)字典進(jìn)行淺拷貝,如需詳細(xì)了解可以參考上上節(jié)可變對(duì)象的淺拷貝和深拷貝詳解《Python列表賦值,復(fù)制,深拷貝以及5種淺拷貝詳解》 |
| fromkeys | fromkeys(*args, **kwargs) 創(chuàng)建一個(gè)新字典,以序列的中元素做字典的鍵,value 為字典所有鍵對(duì)應(yīng)的初始值 |
| get | get(self, k, d=None) 獲取指定鍵k對(duì)應(yīng)的值,如果該鍵不存在則返回d,默認(rèn)為None 該方法可以用來(lái)判斷某鍵是否包含在字典內(nèi) |
| items | 返回類似集合的可遍歷的(鍵, 值) 元組列表 |
| keys | 返回類似集合的可遍歷的鍵列表 |
| pop | 刪除一個(gè)鍵并返回其對(duì)應(yīng)的值 |
| popitem | 隨機(jī)返回并刪除字典中的一對(duì)鍵和值(一般刪除末尾對(duì)),若列表為空再調(diào)用此方法會(huì)拋出KeyError異常 |
| setdefault | setdefault(self, k, d=None) 函數(shù)和 get()方法 類似, 如果鍵不存在于字典中,將會(huì)添加鍵并將值設(shè)為默認(rèn)值 |
| update | 更新字典中的鍵/值對(duì),可以修改存在的鍵對(duì)應(yīng)的值,也可以添加新的鍵/值對(duì)到字典中,將鍵值對(duì)添加到字典中,可能是字典,也可能是鍵-值對(duì)序列,詳見(jiàn)實(shí)例 |
| values | 返回類似集合的可遍歷的值列表 |
示例代碼
# dict
import copy
# 示例字典
D = {
'name': 'Ruo Data',
'web': {
'site': 'https://www.ruodata.com',
'basic': 'github'
},
'major': 'python'
}
print(D)
print('clear'.center(40, '-'))
# clear|清除字典中所有鍵值對(duì)
D1 = copy.deepcopy(D)
D1.clear()
print(D1)
print('copy'.center(40, '-'))
# copy|對(duì)字典進(jìn)行淺拷貝,如需詳細(xì)了解可以參考上上節(jié)可變對(duì)象的淺拷貝和深拷貝詳解《Python列表賦值,復(fù)制,深拷貝以及5種淺拷貝詳解》
D2 = copy.deepcopy(D)
D2_copy = D2.copy()
D2_copy['web']['articl_nums'] = 2
print(D2)
print('fromkeys'.center(40, '-'))
# fromkeys| fromkeys(*args, **kwargs) 創(chuàng)建一個(gè)新字典,以序列的中元素做字典的鍵,value 為字典所有鍵對(duì)應(yīng)的初始值
D3 = dict.fromkeys(D)
print(D3)
D3 = dict.fromkeys(D, 'SSS')
print(D3)
print('get'.center(40, '-'))
# get| get(self, k, d=None) 獲取指定鍵k對(duì)應(yīng)的值,如果該鍵不存在則返回d,默認(rèn)為`None` 該方法可以用來(lái)判斷某鍵是否包含在字典內(nèi)
value = D.get('name')
print(value)
# 判斷鍵`'TEAM'`是否存在于D中:
if D.get('TEAM'):
print(D.get('TEAM'))
else:
print(None)
print('items'.center(40, '-'))
# items| 返回類似集合的可遍歷的(鍵, 值) 元組列表。
items = D.items()
print(items)
# 利用items 遍歷字典打印鍵值對(duì):
for key, value in D.items():
print('{}: {}'.format(key, value))
print('keys'.center(40, '-'))
# keys| 返回類似集合的可遍歷的鍵列表
keys = D.keys()
print(keys)
print('pop'.center(40, '-'))
# pop| 刪除一個(gè)鍵并返回其對(duì)應(yīng)的值
D4 = copy.deepcopy(D)
value = D4.pop('name')
print(value)
print(D4)
print('popitem'.center(40, '-'))
# popitem| 隨機(jī)返回并刪除字典中的一對(duì)鍵和值(一般刪除末尾對(duì)),若列表為空再調(diào)用此方法會(huì)拋出KeyError異常
D5 = copy.deepcopy(D)
key_value = D5.popitem()
print(key_value)
print(D5)
print('setdefault'.center(40, '-'))
# setdefault| setdefault(self, k, d=None) 函數(shù)和 get()方法 類似, 如果鍵不存在于字典中,將會(huì)添加鍵并將值設(shè)為默認(rèn)值。
D6 = copy.deepcopy(D)
key_value = D6.setdefault('major')
print(key_value)
key_value = D6.setdefault('UNKONW_KEY', 'UNKOWN_VALUE')
print(key_value)
print(D6)
print('update'.center(40, '-'))
# update| 更新字典中的鍵/值對(duì),可以修改存在的鍵對(duì)應(yīng)的值,也可以添加新的鍵/值對(duì)到字典中,將e中鍵-值對(duì)添加到字典d中,e可能是字典,也可能是鍵-值對(duì)序列。詳見(jiàn)實(shí)例。
D7 = copy.deepcopy(D)
# 傳一個(gè)字典
D7.update({'three': 3, 'four': 4})
print(D7)
# 傳關(guān)鍵字
D7.update(five=5, six=6)
print(D7)
# 傳一個(gè)包含一個(gè)或多個(gè)元組的列表
D7.update([('seven', 7), ('eight', 8)])
print(D7)
# 傳一個(gè)包含一個(gè)或多個(gè)列表的元組
D7.update((['nice', 9], ['ten', 10]))
print(D7)
# 傳一個(gè)zip()函數(shù)
D7.update(zip(['eleven', 'twelve'], [11, 12]))
print(D7)
# 使用以上任意方法修改存在的鍵對(duì)應(yīng)的值
D7.update(one=111, two=222)
print(D7)
print('values'.center(40, '-'))
# values| 返回類似集合的可遍歷的值列表
values = D.values()
print(values)
示例結(jié)果
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

