一篇文章帶你了解python字典基礎(chǔ)
1. 字典基礎(chǔ)知識
字典:是可變的無序集合,以鍵值對為基本元素可以存儲各種數(shù)據(jù)類型的集合,用大括號({})表示字典的開始和結(jié)束,元素之間用半角逗號(,)分隔。鍵值對,由鍵(key)和值(value)組成,中間用冒號(:)分隔。如:“wky”:28。字典屬于典型的一對一的映射關(guān)系的數(shù)據(jù)類型。
- 字典可以理解為“映射”,映射是一種鍵(索引)和值(數(shù)據(jù))的對應(yīng)
字典的基本格式表示
>>> #空字典 >>> {} {} >>> #定義一個元素的字典變量 >>> d1 = {"wky":28} >>> len(d1) 1 >>> d2 = {"wky":1,"lyj":2} >>> len(d2) 2 >>>
字典的鍵、值設(shè)置要求
1)鍵的設(shè)置要求
(1)唯一性:一個字典對象里所有的鍵必須是唯一的。
>>> d3={1:"wky",2:"lyj",2:"lyj"} >>> len(d3) 2 >>> d3={1:"wky",2:"lyj",2:"wa"} >>> len(d3) 2
在定義字典變量時,python允許輸入重復(fù)的元素,但是在調(diào)用時,python只會保留最后一個鍵相同的元素。為了避免出現(xiàn)問題,在定義字典對象時,應(yīng)該養(yǎng)成嚴格定義每個元素鍵并保證鍵的唯一性的良好習(xí)慣。
(2)不可變性,字典在使用過程中不能對元素的鍵進行直接修改。
>>> d2={"wkys":1,"lyj":2} #wky錯誤寫成wkys
2)值的設(shè)置要求
2. 字典元素增加
1.利用賦值給字典增加元素
>>> d2 = {"wky":1,"lyj":2} >>> d2["wa"]=3 >>> d2 {'wky': 1, 'lyj': 2, 'wa': 3} >>>
上述增加元素的前提是:要求字典里沒有新增的鍵,否則會修改指定鍵的值。
列表變量帶中括號與字典變量帶中括號之間的區(qū)別:
(1)列表:L[x]=value的方法,修改對應(yīng)的元素,x為指定的下標
(2)字典:D[x]=value的方法,為字典增加新元素,k為指定的鍵,且k在字典對象中不存在。
2.利用setdefault()方法給字典增加元素
setdefault()使用格式為D.setdefault(k[,d])。D代表字典對象,k代表新增鍵,d代表新增鍵對應(yīng)的值(若不提供值,則默認值為None)
>>> d1={"wky":1,"lyj":2} >>> d1.setdefault("wa",10) 10 >>> d1 {'wky': 1, 'lyj': 2, 'wa': 10} >>> d1.setdefault('wake') >>> d1 {'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None} >>>
用setdefault()方法新增鍵值對時,若指定鍵已經(jīng)存在,則只顯示已經(jīng)存在鍵的值。
3. 字典值查找
1.字典名+[key]查找
>>> d2={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None} >>> d2["lyj"] 2
若指定的鍵在字典對象中不存在會報錯。
>>> d2={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None} >>> d2['w'] Traceback (most recent call last): File "<pyshell#28>", line 1, in <module> d2['w'] KeyError: 'w' #提示鍵出錯
2.利用get()方法查找
get()方法使用格式D.get(k[,d]),D代表字典對象,k為指定的鍵,d為鍵對應(yīng)的值。
>>> d2={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None} >>> d2.get("wky") 1 >>> #查找字典中不存在的鍵 >>> d2.get('w') >>>
get()方法指定的鍵在字典中不存在時返回空值。
4. 字典值修改
1.利用賦值修改鍵對應(yīng)的值
>>> d2={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None} >>> d2["wake"]=99 >>> d2 {'wky': 1, 'lyj': 2, 'wa': 10, 'wake': 99} >>>
2.利用update()方法修改鍵對應(yīng)的值
update()方法的使用格式D.update(d1),D代表要更新的字典對象,d1為提供更新內(nèi)容的字典。若d1中提供的鍵在D中,則更新D里對應(yīng)的鍵值,若不存在,則增加鍵值對。
1)更新字典里鍵對應(yīng)的值
>>> d1={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None} >>> d2={"wky":10,"wake":89} >>> d1.update(d2) >>> d1 {'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89}
2)新增鍵值對
>>> d1={'wky': 1, 'lyj': 2, 'wa': 10, 'wake': None} >>> d1.update({"wakeyo":100}) >>> d1 {'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89, 'wakeyo': 100}
5. 字典元素刪除
1.利用del函數(shù)刪除
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89, 'wakeyo': 100} >>> del(d1["wakeyo"]) >>> d1 {'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89} >>>
2.利用pop()方法刪除
pop()方法使用格式D.pop(k[,d]),D代表字典,k代表需要刪除的元素的鍵,d為鍵對應(yīng)的值(可選)。
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89} >>> pl=d1.pop('wake') >>> pl 89 >>>
3.利用popitem()方法刪除
popitem()方法使用格式D.popitme(),D代表字典,隨即返回一個鍵值對元組,并在字典里刪除對應(yīng)的元素。
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89} >>> k1,v1=d1.popitem() >>> k1,v1 ('wake', 89) >>> d1 {'wky': 10, 'lyj': 2, 'wa': 10} >>> t1=d1.popitem() >>> t1 ('wa', 10) >>> type(t1) <class 'tuple'> >>>
del函數(shù)、pop()方法、popitem()方法若對不存在的元素進行操作時,都將報錯。
6. 字典遍歷操作
1.遍歷所有鍵值對:
利用items()方法遍歷所有鍵值對
items()方法使用格式D.items(),D代表字典,以元組形式返回字典的所有元素。
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89} >>> for get_l in d1.items(): print(get_l) #結(jié)果 ('wky', 10) ('lyj', 2) ('wa', 10) ('wake', 89)
>>> d1.items() dict_items([('wky', 10), ('lyj', 2), ('wa', 10), ('wake', 89)]) >>> type(d1.items) <class 'builtin_function_or_method'> >>>
遍歷所有鍵
1)利用字典變量循環(huán)遍歷
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89} >>> for gets in d1: print(gets)
#結(jié)果
wky
lyj
wa
wake
2)利用keys()方法獲取字典鍵
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89} >>> for get_l in d1.keys(): print(get_l)
#結(jié)果
wky
lyj
wa
wake
遍歷所有值
1)通過鍵遍歷值
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89} >>> for get_key in d1: print(d1[get_key])
#結(jié)果
10
2
10
89
2)利用values()方法獲取字典值
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89} >>> for get_v in d1.values(): print(get_v)
#結(jié)果
10
2
10
89
7. 字典其他操作方法
1.in成員操作
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89} >>> if "wky" in d1.keys(): print("wky在字典里") else: print("wky不在字典里") wky在字典里
2.clear()方法
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89} >>> d1.clear() >>> d1 {}
3.copy()方法
>>> d1={'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89} >>> d2=d1.copy() >>> d2 {'wky': 10, 'lyj': 2, 'wa': 10, 'wake': 89} >>> id(d1) 2432414090296 >>> id(d2) 2432414587208 >>> d3=d2 >>> id(d3) 2432414587208
通過copy()方法的復(fù)制,可以避免字典變量之間直接賦值指向同一個地址。
4.fromkeys()方法
fromkeys()方法使用格式D.fromkeys(iterable),D代表字典,iterable代表列表對象,用于指定字典鍵,生成的D的鍵對應(yīng)的值默認為None。
>>> d1={}.fromkeys(["wky","lyj","wa"]) >>> d1 {'wky': None, 'lyj': None, 'wa': None} >>>
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
PyQt5+QtChart實現(xiàn)繪制區(qū)域圖
QChart是一個QGraphicScene中可以顯示的QGraphicsWidget。本文將利用QtChart實現(xiàn)區(qū)域圖的繪制,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2022-12-12pytorch訓(xùn)練神經(jīng)網(wǎng)絡(luò)爆內(nèi)存的解決方案
這篇文章主要介紹了pytorch訓(xùn)練神經(jīng)網(wǎng)絡(luò)爆內(nèi)存的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05python實現(xiàn)給微信指定好友定時發(fā)送消息
這篇文章主要為大家詳細介紹了python實現(xiàn)給微信指定好友定時發(fā)消息,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04Python為Excel單元格設(shè)置填充\背景色的操作方法(純色、漸變、圖案)
在使用Excel進行數(shù)據(jù)處理和分析時,對特定單元格進行背景顏色填充不僅能夠提升工作表的視覺吸引力,還能幫助用戶快速識別和區(qū)分不同類別的數(shù)據(jù),本文將通過三個示例詳細介紹如何使用Python在Excel中設(shè)置不同的單元格背景,需要的朋友可以參考下2024-08-08使用Python編程分析火爆全網(wǎng)的魷魚游戲豆瓣影評
本文來為大家介紹如何使用Python爬取影評的操作,主要是爬取《魷魚游戲》在豆瓣上的一些影評,對數(shù)據(jù)做一些簡單的分析,用數(shù)據(jù)的角度重新審視下這部劇,有需要的朋友可以借鑒參考下2021-10-10