欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

老生常談python字典用法

 更新時(shí)間:2021年12月25日 09:49:26   作者:stone0823  
python 創(chuàng)建字典可以使用 dict 函數(shù),或者使用花括號,用花括號的方式更為常見。本文給大家介紹python字典用法,感興趣的朋友跟隨小編一起看看吧

創(chuàng)建字典

python 創(chuàng)建字典可以使用 dict 函數(shù),或者使用花括號,用花括號的方式更為常見。

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í)候通過兩個(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] 的語法獲得 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() 方法,沒有對應(yīng)的 Key 返回 None:

d = dict(a="Athens", b="Belgrade", c="Cairo")
print(d.get("d"))

方法二是在使用前先通過 in 進(jìn)行判斷:

d = dict(a="Athens", b="Belgrade", c="Cairo")
if "a" in d:
    print(d["a"])

修改

最簡單的方法,通過 d[key] = value 方法修改,如果 key 不存在,則新建一個(gè)字典項(xiàng):

d["a"] = "Atlanta"

update() 方法可使用一個(gè)字典來更新已有的字典,如果被更新的字典中己包含對應(yīng)的 key,那么原 value 會被覆蓋;如果被更新的字典中不包含對應(yīng)的 key,則該 key-value 對被添加進(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() 刪除對應(yīng)鍵值,如果 key 不存在,也拋出 KeyError,可以對不存在鍵的情況設(shè)置默認(rèn)值

示例:

del d["a"]
print(d.pop("d", "none")) # 返回 none而不是KeyError

setdefault() 方法

setdefault() 方法在 key 已經(jīng)存在的時(shí)候返回對應(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 用法和知識點(diǎn)總結(jié) 3.7 版本后,dict 能保存 key 的位置,3.7之前 key 是無序的,關(guān)心 key 的位置可以使用 SortedDict 數(shù)據(jù)結(jié)構(gòu)
  • pop() / get() / setdefault() 三個(gè)方法可以設(shè)置 default 值,避免 KeyError
  • 字典的 key 不可重復(fù)

到此這篇關(guān)于老生常談python字典用法的文章就介紹到這了,更多相關(guān)python字典用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)模擬時(shí)鐘代碼推薦

    Python實(shí)現(xiàn)模擬時(shí)鐘代碼推薦

    本文給大家匯總介紹了下使用Python實(shí)現(xiàn)模擬時(shí)鐘的代碼,一共3個(gè)例子,后兩個(gè)是基于QT實(shí)現(xiàn),有需要的小伙伴可以參考下
    2015-11-11
  • Python PyQt5實(shí)現(xiàn)拖放效果的原理詳解

    Python PyQt5實(shí)現(xiàn)拖放效果的原理詳解

    這篇文章主要為大家詳細(xì)介紹了Python PyQt5中拖放效果的實(shí)現(xiàn)原理與實(shí)現(xiàn)代碼,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-11-11
  • Pandas Shift函數(shù)的基礎(chǔ)入門學(xué)習(xí)筆記

    Pandas Shift函數(shù)的基礎(chǔ)入門學(xué)習(xí)筆記

    shift函數(shù)是對數(shù)據(jù)進(jìn)行移動的操作,下面這篇文章主要給大家介紹了關(guān)于Pandas Shift函數(shù)的基礎(chǔ)入門學(xué)習(xí)筆記,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Python自動化測試之登錄腳本的實(shí)現(xiàn)

    Python自動化測試之登錄腳本的實(shí)現(xiàn)

    本文主要介紹了Python自動化測試之登錄腳本的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python實(shí)現(xiàn)簡單反彈球游戲

    python實(shí)現(xiàn)簡單反彈球游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡單反彈球游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • python如何尋找主串中所有指定子串下標(biāo)

    python如何尋找主串中所有指定子串下標(biāo)

    這篇文章主要介紹了python如何尋找主串中所有指定子串下標(biāo),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • keras 自定義loss損失函數(shù),sample在loss上的加權(quán)和metric詳解

    keras 自定義loss損失函數(shù),sample在loss上的加權(quán)和metric詳解

    這篇文章主要介紹了keras 自定義loss損失函數(shù),sample在loss上的加權(quán)和metric詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python如何停止遞歸

    python如何停止遞歸

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python停止遞歸的方法和相關(guān)知識點(diǎn),有興趣的朋友們可以學(xué)習(xí)下。
    2020-09-09
  • Python+Django+MySQL實(shí)現(xiàn)基于Web版的增刪改查的示例代碼

    Python+Django+MySQL實(shí)現(xiàn)基于Web版的增刪改查的示例代碼

    這篇文章主要介紹了Python+Django+MySQL實(shí)現(xiàn)基于Web版的增刪改查的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 5分鐘教會你用Docker部署一個(gè)Python應(yīng)用

    5分鐘教會你用Docker部署一個(gè)Python應(yīng)用

    Docker是一個(gè)開源項(xiàng)目,為開發(fā)人員和系統(tǒng)管理員提供了一個(gè)開放平臺,可以將應(yīng)用程序構(gòu)建、打包為一個(gè)輕量級容器,并在任何地方運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于如何通過5分鐘教會你用Docker部署一個(gè)Python應(yīng)用,需要的朋友可以參考下
    2022-06-06

最新評論