Python數(shù)據(jù)容器dict(字典)的實(shí)現(xiàn)
字典的定義
使用{},不過(guò)存儲(chǔ)的元素是一個(gè)個(gè)的:鍵值對(duì),如下語(yǔ)法:
使用{}存儲(chǔ)原始,每一個(gè)元素是一個(gè)鍵值對(duì)
每一個(gè)鍵值對(duì)包含Key和Value(用冒號(hào)分隔)
鍵值對(duì)之間使用逗號(hào)分隔
Key和Value可以是任意類型的數(shù)據(jù)(key不可為字典)
Key不可重復(fù),重復(fù)會(huì)對(duì)原有數(shù)據(jù)覆蓋
字典不可用下標(biāo)索引,而是通過(guò)Key檢索Value
字典數(shù)據(jù)的獲取
字典同集合一樣,不可以使用下標(biāo)索引
字典可以通過(guò)Key值來(lái)取得對(duì)應(yīng)的Value
my_dict={"A":100,"B":80,"C":60} print(my_dict["A"]) print(my_dict["B"]) print(my_dict["C"])
100
80
60
字典的嵌套
字典的Key和Value可以是任意數(shù)據(jù)類型(Key不可為字典) 那么,就表明,字典是可以嵌套的
內(nèi)容獲取類似于二維數(shù)組
my_dict = { "sorce":{"A":77,"B":66,"C":33}, "level":{"A":88,"B":86,"C":55}, "grade":{"A":99,"B":96,"C":66} } print(my_dict["sorce"]) print(my_dict["sorce"]["A"]) print(my_dict["grade"]["C"])
{'A': 77, 'B': 66, 'C': 33}
77
66
字典的各種操作
編號(hào) | 操作 | 說(shuō)明 |
1 | 字典[Key] | 獲取指定Key對(duì)應(yīng)的Value值 |
2 | 字典[Key] = Value | 添加或更新鍵值對(duì) |
3 | 字典.pop(Key) | 取出Key對(duì)應(yīng)的Value并在字典內(nèi)刪除此Key的鍵值對(duì) |
4 | 字典.clear() | 清空字典 |
5 | 字典.keys() | 獲取字典的全部Key,可用于for循環(huán)遍歷字典 |
6 | len(字典) | 計(jì)算字典內(nèi)的元素?cái)?shù)量 |
新增與更新元素 [Key] = Value
語(yǔ)法:字典[Key] = Value,結(jié)果:字典被修改,新增了元素
注意:字典Key不可以重復(fù),所以對(duì)已存在的Key執(zhí)行上述操作,就是更新Value值
my_dict={"A":100,"B":80,"C":60} my_dict["D"]=40#新增加內(nèi)容 print(my_dict) my_dict["B"]=88#更新已有內(nèi)容 print(my_dict)
刪除元素 pop和del
語(yǔ)法:字典.pop(Key),結(jié)果:獲得指定Key的Value,同時(shí)字典被修改,指定Key的數(shù)據(jù)被刪除
del 字典[key] 為直接刪除
my_dict={"A":100,"B":80,"C":60} value=my_dict.pop("A") print(value) print(my_dict) del my_dict["B"] print(my_dict)
100
{'B': 80, 'C': 60}
{'C': 60}
清空字典 clear
語(yǔ)法:字典.clear(),結(jié)果:字典被修改,元素被清空
my_dict={"A":100,"B":80,"C":60} my_dict.clear() print(my_dict)
{}
獲取全部的鍵 keys
語(yǔ)法:字典.keys(),結(jié)果:得到字典中的全部Key
my_dict={"A":100,"B":80,"C":60} k=my_dict.keys() print(k) print(my_dict)
dict_keys(['A', 'B', 'C'])
{'A': 100, 'B': 80, 'C': 60}
遍歷字典
keys()
語(yǔ)法:for key in 字典.keys()
字典不支持下標(biāo)索引,所以同樣不可以用while循環(huán)遍歷
my_dict={"A":100,"B":80,"C":60} for key in my_dict.keys(): print(f"等級(jí):{key},分?jǐn)?shù):{my_dict[key]}")
等級(jí):A,分?jǐn)?shù):100
等級(jí):B,分?jǐn)?shù):80
等級(jí):C,分?jǐn)?shù):60
values ()
my_dict={"A":100,"B":80,"C":60} for i in my_dict.values(): print(i)
100
80
60
items()
my_dict={"A":100,"B":80,"C":60} for i in my_dict.items(): print(i) print(type(i)) print(type(my_dict.items()))
('A', 100)
('B', 80)
('C', 60)
<class 'tuple'>
<class 'dict_items'>
利用items依次打印key和value
my_dict={"A":100,"B":80,"C":60} #4.依次打印key和value,通過(guò)索引 for key,value in my_dict.items(): print(key,value)
A 100
B 80
C 60
容器通用功能總覽
功能 | 描述 |
通用for循環(huán) | 遍歷容器(字典是遍歷key) |
max | 容器內(nèi)最大元素 |
min() | 容器內(nèi)最小元素 |
len() | 容器元素個(gè)數(shù) |
list() | 轉(zhuǎn)換為列表 |
tuple() | 轉(zhuǎn)換為元組 |
str() | 轉(zhuǎn)換為字符串 |
set() | 轉(zhuǎn)換為集合 |
sorted(序列, [reverse=True]) | 排序,reverse=True表示降序 得到一個(gè)排好序的列表 |
到此這篇關(guān)于Python數(shù)據(jù)容器dict(字典)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)容器字典內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談python中np.array的shape( ,)與( ,1)的區(qū)別
今天小編就為大家分享一篇python中np.array的shape ( ,)與( ,1)的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06python實(shí)現(xiàn)從web抓取文檔的方法
這篇文章主要介紹了python實(shí)現(xiàn)從web抓取文檔的方法,以抓取人人網(wǎng)頁(yè)面為例講述了完整的web文檔抓取方法,需要的朋友可以參考下2014-09-09Python實(shí)現(xiàn)無(wú)損放大圖片的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的無(wú)損放大圖片小程序,可以支持將JPG/PNG圖片無(wú)損放大上萬(wàn)像素,感興趣的可以了解一下2022-08-08Python深度學(xué)習(xí)實(shí)戰(zhàn)PyQt5基本控件使用解析
PyQt5 提供了豐富的輸入輸出控件。本文介紹通過(guò) QtDesigner 工具欄創(chuàng)建常用的基本控件,包括各種按鈕控件、文本輸入控件和調(diào)節(jié)輸入控件2021-10-10Python實(shí)現(xiàn)將內(nèi)容轉(zhuǎn)為base64編碼與解碼
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)將內(nèi)容轉(zhuǎn)為base64編碼與解碼的示例代碼,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-02-02TensorFlow實(shí)現(xiàn)隨機(jī)訓(xùn)練和批量訓(xùn)練的方法
本篇文章主要介紹了TensorFlow實(shí)現(xiàn)隨機(jī)訓(xùn)練和批量訓(xùn)練的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04