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"]))

然後我們發現,執行這一步操作時new_dict["ilpy1"]["company"] = "wtf",對a也執行了修改,比較id可知new_dict["ilpy1"]["company"]))a["ilpy1"]["company"]指向了同一位置,而anew_dict指向不同位置,這就是淺拷貝的副作用

深拷貝

這並不是dict自帶的方法而是來自python的一個包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轉換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() 函數和 get()方法 類似, 如果鍵不存在於字典中,將會添加鍵並將值設爲默認值。所以當我們需要快速判斷鍵值對是否存在並且加上去的時候就可以使用此方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章