Python dict的常用方法示例代碼
常用方法
淺拷貝copy
a = {"ilpy1": {"company": "aaa"}, "ilpy2": {"company": "bbb"} } new_dict = a.copy() new_dict["ilpy1"]["company"] = "wtf" print(new_dict) print(a) print(id(a)) print(id(new_dict)) print(id(new_dict["ilpy1"]["company"])) print(id(a["ilpy1"]["company"]))
然后我們發(fā)現(xiàn),執(zhí)行這一步操作時(shí)new_dict["ilpy1"]["company"] = "wtf"
,對a也執(zhí)行了修改,比較id可知new_dict["ilpy1"]["company"]))
和a["ilpy1"]["company"]
指向了同一位置,而a
與new_dict
指向不同位置,這就是淺拷貝的副作用
深拷貝
這并不是dict
自帶的方法而是來自python的一個(gè)包copy
import copy a = {"ilpy1": {"company": "aaa"}, "ilpy2": {"company": "bbb"} } new_dict = copy.deepcopy(a) print(id(a)) print(id(new_dict)) a['ilpy1']['company'] = "666" print(a) print(new_dict)
list轉(zhuǎn)換dict
import copy a = {"ilpy1": {"company": "aaa"}, "ilpy2": {"company": "bbb"} } myList = ['aaa', 'bbb'] new_dict = dict.fromkeys(myList, "2") print(new_dict)
items
a = {"ilpy1": {"company": "aaa"}, "ilpy2": {"company": "bbb"} } for key,value in a.items(): print(key,value)
clear
a = {"ilpy1": {"company": "aaa"}, "ilpy2": {"company": "bbb"} } # clear 清楚dict元素 # a.clear() # print(a)
update
a = {"ilpy1": {"company": "aaa"}, "ilpy2": {"company": "bbb"} } a.update(a=1,b=2) print(a)
傳入可迭代對象也可
a = {"ilpy1": {"company": "aaa"}, "ilpy2": {"company": "bbb"} } a.update([('1','2')]) print(a) a.update((('1','2'),)) print(a)
setdefault
Python 字典 setdefault() 函數(shù)和 get()方法 類似, 如果鍵不存在于字典中,將會(huì)添加鍵并將值設(shè)為默認(rèn)值。所以當(dāng)我們需要快速判斷鍵值對是否存在并且加上去的時(shí)候就可以使用此方法
ps:下面看下python-dict和list常用方法
# *********-list-********* # 創(chuàng)建一個(gè)list list1 = [1, 2, '力氣,', 'afd'] print(type(list1)) print(list1) # 添加單個(gè)元素 list1.append('ffff') print(list1) list2 = ['ff2', 34] # 添加list list2.extend(list1) print(list2) # 獲取指定index的元素 print(list2[2]) # 刪除指定values元素 list2.remove('value') # 刪除index=2的元素 del list2[2] print(list2) # 創(chuàng)建一個(gè)list1中的數(shù)據(jù)重復(fù)2次的list3 list3 = list1*2 print(list3) # 排序 list4 = [1, 2, 8, 3, 12, 3] # 升序 list4.sort() print(list4) # 降序 list4.reverse() print(list4) # 創(chuàng)建一個(gè)二維數(shù)組 list_muti = [[0, 0, 1]]*2 print(list_muti) print(list_muti[0][1])
# *********-dict-********* # 創(chuàng)建一個(gè)dict dict1 = {} print(type(dict1)) # 字典添加元素 dict1['a'] = 'value-a' print(dict1) # 批量添加元素 listx = [] for value in ('abced'): for key in (['abcde', 're', 1, 'n你re1', 3]): if key in listx: continue else: listx.append(key) # print(value) # print(key) dict1[key] = value break print(dict1) # dict里的fromkeys方法 dict1 = dict1.fromkeys(('a', 'ccc'), """ "nn'n'" """) print(dict1) # 獲取keys之后轉(zhuǎn)成list顯示 keylist = list(dict1.keys()) print('%s' % keylist[0]) # 獲取values之后轉(zhuǎn)成list顯示 valuelist = list(dict1.values()) print('%s' % valuelist[0]) print(dict1) # 獲取key對應(yīng)的value value = dict1['a'] print(value) value2 = dict1.get('ccc', '木有找到') # 與dict.get()方法一致,但是如果沒有對應(yīng)的key會(huì)自動(dòng)創(chuàng)建一個(gè)key,value為none dict1.setdefault('m') print(dict1) # 更新字典,如果沒有對應(yīng)的key會(huì)自動(dòng)添加key-dict dict1.update({'ccc': 'fff2'}) print(dict1) value2 = dict1.get('ccc1', '木有找到') print(value2)
總結(jié)
到此這篇關(guān)于Python dict的常用方法的文章就介紹到這了,更多相關(guān)Python dict的常用方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python編程使用selenium模擬登陸淘寶實(shí)例代碼
這篇文章主要介紹了python編程使用selenium模擬登陸淘寶實(shí)例代碼,涉及selenium的簡介及Windows下的安裝,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01pytest用例間參數(shù)傳遞的兩種實(shí)現(xiàn)方式示例
pytest提供了許多運(yùn)行命令以供定制化運(yùn)行某一類測試用例或者某個(gè)測試用例等,下面這篇文章主要給大家介紹了關(guān)于pytest用例間參數(shù)傳遞的兩種實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12Python獲取當(dāng)前時(shí)間日期的實(shí)現(xiàn)示例
本文主要介紹了Python獲取當(dāng)前時(shí)間日期,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Python Print實(shí)現(xiàn)在輸出中插入變量的例子
今天小編就為大家分享一篇Python Print實(shí)現(xiàn)在輸出中插入變量的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12梯度下降法介紹及利用Python實(shí)現(xiàn)的方法示例
梯度下降算法是一個(gè)很基本的算法,在機(jī)器學(xué)習(xí)和優(yōu)化中有著非常重要的作用,下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)梯度下降法的相關(guān)資料,對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-07-07Django+Uwsgi+Nginx如何實(shí)現(xiàn)生產(chǎn)環(huán)境部署
這篇文章主要介紹了Django+Uwsgi+Nginx如何實(shí)現(xiàn)生產(chǎn)環(huán)境部署,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07