溫馨提示×

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

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

python字典用法是什么

發(fā)布時(shí)間:2021-12-27 17:30:54 來(lái)源:億速云 閱讀:146 作者:柒染 欄目:開(kāi)發(fā)技術(shù)

python字典用法是什么,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)建字典

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)

訪問(wèn)

使用 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() 方法

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ì)億速云的支持。

向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