您好,登錄后才能下訂單哦!
python字典用法是什么,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
python 創(chuàng)建字典可以使用 dict 函數(shù),或者使用花括號(hào),用花括號(hào)的方式更為常見(jiàn)。
d = { "a": "Athens", "b": "Belgrade", "c": "Cairo" }
或者:
d = dict(a="Athens", b="Belgrade", c="Cairo")
python 可以方便地遍歷字典的 keys, values ,或者在遍歷的時(shí)候獲得 key 和 value。下面的代碼演示了遍歷的方式:
for item in d.items(): print(item)
這種方式,每一個(gè) item 是一個(gè) tuple,包括 key 和 value。
('a', 'Athens') ('b', 'Belgrade') ('c', 'Cairo')
也可以在遍歷的時(shí)候通過(guò)兩個(gè)變量得到 key 和 value:
for k, v in d.items(): print(k, v)
如果只關(guān)心 keys:
for k in d.keys(): print(k)
如果只關(guān)心 values:
for v in d.values(): print(v)
使用 d[k] 的語(yǔ)法獲得 key 為 k 的值,如果 key 不存在,拋出 KeyError。比如剛才的字典中 print(d["a"])
得到 Athens,但如果是 d[“d”],因?yàn)椴⒉淮嬖?key 為 d 的項(xiàng),所以拋出 KeyError:
d = dict(a="Athens", b="Belgrade", c="Cairo") print(d["d"])
運(yùn)行代碼,拋出異常如下:
Traceback (most recent call last): File "d:/temporary/python dict demo/test.py", line 4, in <module> print(d["d"]) KeyError: 'd'
如果想避免拋出異常,有兩個(gè)方法:方法一是使用 get() 方法,沒(méi)有對(duì)應(yīng)的 Key 返回 None:
d = dict(a="Athens", b="Belgrade", c="Cairo") print(d.get("d"))
方法二是在使用前先通過(guò) in 進(jìn)行判斷:
d = dict(a="Athens", b="Belgrade", c="Cairo") if "a" in d: print(d["a"])
最簡(jiǎn)單的方法,通過(guò) d[key] = value 方法修改,如果 key 不存在,則新建一個(gè)字典項(xiàng):
d["a"] = "Atlanta"
update() 方法可使用一個(gè)字典來(lái)更新已有的字典,如果被更新的字典中己包含對(duì)應(yīng)的 key,那么原 value 會(huì)被覆蓋;如果被更新的字典中不包含對(duì)應(yīng)的 key,則該 key-value 對(duì)被添加進(jìn)去。例如如下代碼:
d = dict(a="Athens", b="Belgrade", c="Cairo") d.update({ "a": "Atlanta", "b": "Belgrade", "d": "Dehli" }) print(d)
運(yùn)行代碼,a 被替換,b 保持不變,c 被保留,d 被增加:
{'a': 'Atlanta', 'b': 'Belgrade', 'c': 'Cairo', 'd': 'Dehli'}
clear() 方法刪除所有字典項(xiàng)
del 刪除字典項(xiàng),如果 key 不存在,拋出 KeyError
pop() 刪除對(duì)應(yīng)鍵值,如果 key 不存在,也拋出 KeyError,可以對(duì)不存在鍵的情況設(shè)置默認(rèn)值
示例:
del d["a"] print(d.pop("d", "none")) # 返回 none而不是KeyError
setdefault() 方法在 key 已經(jīng)存在的時(shí)候返回對(duì)應(yīng)的值,如果 key 不存在,則根據(jù)第二個(gè)參數(shù) (default)增加 key-value pair,比如:
d.setdefault("a", "Atlanta") # 因?yàn)閍已經(jīng)存在,返回Athens d.setdefault("d", "Dehli") # 因?yàn)閐不存在,將d設(shè)為Dehli
dict 用法和知識(shí)點(diǎn)總結(jié) 3.7 版本后,dict 能保存 key 的位置,3.7之前 key 是無(wú)序的,關(guān)心 key 的位置可以使用 SortedDict 數(shù)據(jù)結(jié)構(gòu)
pop() / get() / setdefault() 三個(gè)方法可以設(shè)置 default 值,避免 KeyError
字典的 key 不可重復(fù)
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(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)容。