哈嘍小伙伴們,今天咱們來復習一下Python基礎中的字典,看看還記得多少!
使用字典
在python中,字典是一系列鍵值對,每個鍵都與一個值相關聯,你可使用鍵值來訪問相關聯的值,與鍵相關聯的值可以是數、字串、串列、乃至字典,其實,可以將任何python物件用作字典的值,
在python中字典放在花括號 { } 內的一系列鍵值對表示例如:
a = {"animal":"panda","plant":"rose","point":9}
訪問字典中的值
獲取與鍵關聯的值,可以依次指定字典名或放在方括號內的值
例如提取出上述字典中的panda
a = {"animal":"panda","plant":"rose","point":9}
print(a["animal"])
運行結果
panda
添加鍵值對
字典是一種動態結構,可隨時在其中添加鍵值對,如需添加鍵值對,可依次指定字典名、用方括號括起的鍵和相關鍵的值,
下列嘗試在字典中添加country:China
a = {"animal":"panda","plant":"rose","point":9}
print(a)
a["country"] = "China"
print(a)
運行結果
{'animal': 'panda', 'plant': 'rose', 'point': 9}
{'animal': 'panda', 'plant': 'rose', 'point': 9, 'country': 'China'}
修改字典中的值
如果需要修改字典中的值,可以一次的指定字典名、用方括號括起的鍵,以及改鍵相關聯的新值
例如我們更改上述程式的熊貓
a = {"animal":"panda","plant":"rose","point":9}
print(a)
a["animal"] = "little bear"
print(a)
# Python資料原始碼自取群 708525271
運行結果
{'animal': 'panda', 'plant': 'rose', 'point': 9}
{'animal': 'little bear', 'plant': 'rose', 'point': 9}
洗掉鍵值對
對于字典中不需要的資訊,留之無用,可以使用del陳述句將相對應的鍵值進行洗掉,其中必須指定字典名和要洗掉的鍵,
例如洗掉字典a中的鍵"plant"及其值
a = {"animal":"panda","plant":"rose","point":9}
print(a)
del a["plant"]
print(a)
運行結果
{'animal': 'panda', 'plant': 'rose', 'point': 9}
{'animal': 'panda', 'point': 9}
使用get()來訪問值
使用放在方括號內的鍵從字典中獲取感興趣的值時,有時會因為指定的鍵值不存在而引發錯誤,
例如你想在字典a中獲取里面不存在的資訊將會報錯
a = {"animal":"panda","plant":"rose","point":9}
print(a["color"])
運行結果
Traceback (most recent call last): File "C:\Users\Desktop\python\03.py", line 77, in <module> print(a["color"]) KeyError: 'color'
對于字典而言,可使用方法get()在指定的鍵不存在時回傳一個默認值,從而避免這樣的錯誤,
例如:
a = {"animal":"panda","plant":"rose","point":9}
b=a.get("color","no color value assigend.")
print(b)
運行結果
no color value assigend.
如果鍵中有color,將列印與其相關的值,如果沒有,將獲得指定的默認值,這里隨沒有鍵“color”但可以獲得一條訊息,這里不會出錯,
遍歷字典
python中一個字典可以包含幾個值,同樣也可以包含數百萬個鍵值對,字典可以以各種方式存盤資訊,因此有多種遍歷方式,可以遍歷字典的鍵值對,也可以只遍歷鍵或值,
遍歷所有鍵值對:
前面介紹過,我們可以逐一的訪問任意一項,但如果字典所含有成百上千對鍵值對,怎么辦?我們可以使用for回圈來遍歷這個字典:
a = {"animal":"panda","plant":"rose","point":9}
for key,value in a.items():
print(f"\nkey:{key}")
print(f"value:{value}")
運行結果
key:animal
value:panda
key:plant
value:rose
key:point
value:9
要撰寫需要遍歷for回圈中,可分別宣告鍵和值兩個變數,變數名可自定義,
遍歷字典中的所有鍵
在不使用字典中的值時,方法keys()很有用,
我們對字典所包含的值感興趣時方法value()回傳一個值的串列不包含鍵,
a = {"animal":"panda","plant":"rose","point":9}
print(a)
print("\n鍵:")
for key in a.keys():
print(key)
print("\n值:")
for value in a.values():
print(value)
運行結果
鍵:
animal
plant
point
值:
panda
rose
9
其實使用方法與遍歷字典有很大相似性
嵌套
有時候,需要將一系列字典的值存盤在串列中,或者將串列作為值存盤在字典中,這稱為嵌套,
字典串列
比如說字典存放在著一個同學的資訊,但是無法存放第二個同學的資訊,如何管理這群同學的資訊呢?一種方法就是創建一個同學的串列,其中每個同學都是一個字典,
zhangsan = {"heigh/cm":169,"weight/kg":55,"hobby":"read"}
lisi = {"heigh/cm":175,"weight/kg":65,"hobby":"game"}
wangwu = {"heigh/cm":163,"weight/kg":57,"hobby":"dance"}
students = [zhangsan,lisi,wangwu]
for student in students:
print(student)
# Python資料原始碼自取群 708525271
運行結果
{'heigh/cm': 169, 'weight/kg': 55, 'hobby': 'read'}
{'heigh/cm': 175, 'weight/kg': 65, 'hobby': 'game'}
{'heigh/cm': 163, 'weight/kg': 57, 'hobby': 'dance'}
在字典中存盤串列
有時候,需要將串列存于字典中,例如你如何描述顧客點的雞排呢?如果使用串列,只能存盤添加的雞排資訊,但如果使用字典,就不僅僅可在其中包含的配料串列,還可以包含其他對雞排的所有描述,
jipai = { "辣度":["微辣","中辣","特辣"], "番茄醬":["需要","不需要"] } print(jipai) # Python資料原始碼自取群 708525271
運行結果
'辣度': ['微辣', '中辣', '特辣'], '番茄醬': ['需要', '不需要']}
每當字典中將一個鍵關聯到多個值時,都可以在字典中嵌套一個串列,
在字典中存盤字典
可在字典中嵌套字典,但這樣做,代碼很快復雜起來,如果有多個網站用戶,每一個的用戶名都不一樣,可在字典中將用戶名作為鍵,然后將每一個用戶的資訊的存盤在一個字典里,并將這個字典作為該用戶名鍵的值,
user = { "zhangsan":{ "sex":"female","hobby":"python" }, "追風少年":{ "sex":"male","hobby":"computergames" }, "孤獨的夜":{ "sex":"male","hobby":"music" } } for username,users in user.items(): print(f"\nUsername:{username}") sex = users["sex"] hobby = users['hobby'] print(f"\tsex:{sex}") print(f"\thobby:{hobby}")
運行結果
Username:zhangsan
sex:female
hobby:python
Username:追風少年
sex:male
hobby:computergames
Username:孤獨的夜
sex:male
hobby:music
請注意,表示每一位用戶的字典的有相同的結構,雖然在python中沒有這么要求,但這樣會是的嵌套在字典中使用起來更方便,如果鍵值都不相等,那么for回圈在此用起來會十分的復雜!
最后
好了,今天的分享到這里差不多就結束了,最后給大家分享一套Python教程:
Python零基礎入門全套教程
Python進階全套教程
Python實戰100例
人生苦短,我用Python!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/530527.html
標籤:Python
上一篇:淺談PHP設計模式的迭代器模式
