字典,python數據結構中的大殺器,是另一種可變容器模型,且可存儲任意類型對象。字典是 除列表以外 Python 之中 最靈活 的數據類型。字典可以用來 存儲多個數據。通常用于存儲描述一個物體的相關信息。
下面分享9個實用的字典操作,歡迎大家點贊、收藏、支持!
d = {"name": "Tony", "age":100}key = "phone"if key in d: print("Key exists")else: print("Not exists")# Key exists
值得注意的是:不要用 key in d.keys()。這是一個多余的操作,因為 d.keys() 會返回一個新的列表對象,導致使用內存變大。
# example 1d1 = {'a': 1, 'b': 2}d2 = {'b': 3, 'c': 4}d = {**d1, **d2}print(d) # {'a': 1, 'b': 3, 'c': 4}print(d1) # {'a': 1, 'b': 2}print(d2) # {'b': 3, 'c': 4}# example 2d1 = {'a': 1, 'b': 2}d2 = {'b': 3, 'c': 4}d2.update(d1)print(d1) # {'a': 1, 'b': 2}print(d2) # {'a': 1, 'b': 2, 'c': 4}
值得注意的是:第一個例子,d1 和 d2 不會被修改,并且相同的key不會被重新賦值。第二個例子,d2 被 d1更新,相同的key會被重新賦值。
# method 1d = {'c': 3, 'd': 4, 'a': 1, 'b': 2}for key, value in d.items(): print(key, value) # c 3 d 4 a 1 b 2# method 2d = {'c': 3, 'd': 4, 'a': 1, 'b': 2}for key in d: print(key, d[key]) # c 3 d 4 a 1 b 2
方法一中 d.items() 需要返回一個額外的 dict_items 對象。
fruits = ['apple', 'mango', 'banana','cherry']d = {f:len(f) for f in fruits} # 類似于列表推導式print(d) # {'apple': 5, 'mango': 5, 'banana': 6, 'cherry': 6}
字典本質上是一個無序的容器對象(從Python 3.6開始支持順序,但是這個順序是指key添加的順序)。我們可以使用 lambda 函數作為排序鍵按鍵或值對字典進行排序。
d = {"c": 3, "a": 1, "f":6, "b": 0}# 按key排序sorted(d.items(), key=lambda x:x[0]) # [('a', 1), ('b', 0), ('c', 3), ('f', 6)]# 按value排序sorted(d.items(), key=lambda x:x[1]) # [('c', 3), ('f', 6), ('b', 0), ('a', 1)]
# method 1chars = ['a', 'b','c','a','d','c']d = {}for c in chars: d[c] = d.get(c, 0) + 1print(d) # {'a': 2, 'b': 1, 'c': 2, 'd': 1}# method 2import collectionschars = ['a', 'b','c','a','d','c']d = collections.Counter(chars)print(d) # Counter({'a': 2, 'b': 1, 'c': 2, 'd': 1})
d = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}# 刪除指定的鍵值對del d['ob1']print(d) # {'ob2': 'mouse', 'ob3': 'printer'}# 刪除所有的鍵值對d.clear()print(d) # {}
stocks = ['reliance', 'infosys', 'tcs'] prices = [2175, 1127, 2750] d = dict(zip(stocks, prices))print(d) # {'reliance': 2175, 'infosys': 1127, 'tcs': 2750}
# 淺復制d = {'a': 1, 'b': 2}x = d # 只是引用 ?? 改變x也會改變d!x.update({'c': 3})print(x) # {'a': 1, 'b': 2, 'c': 3}print(d) # {'a': 1, 'b': 2, 'c': 3}x.clear()print(x) # {}print(d) # ()# 深復制d = {'a': 1, 'b': 2}x = d.copy() #復制了一份,改變x不會改變dx.update({'c': 3})print(x) # {'a': 1, 'b': 2, 'c': 3}print(d) # {'a': 1, 'b': 2}x.clear()print(x) # {}print(d) # {'a': 1, 'b': 2}
上面分享的9個python字典操作,希望對你有所幫助!
本文鏈接:http://www.www897cc.com/showinfo-26-51220-0.html九個必須知道的Python字典騷操作
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 穿越編程時光:20種常用編程語言的"Hello, World!"初體驗
下一篇: 13個你不知道的Python技巧