Python dict字典方法完全攻略(全)

2021-02-19 小學生編程

我們知道,Python 字典的數據類型為 dict,我們可使用 dir(dict) 來查看該類型包含哪些方法,例如:

>>> dir(dict)
['clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

這些方法中,fromkeys() 和 get() 的用法已在《Python字典》中進行了介紹,這裡不再贅述,本節只給大家介紹剩下的方法。

keys()、values() 和 items() 方法

將這三個方法放在一起介紹,是因為它們都用來獲取字典中的特定數據:

keys() 方法用於返回字典中的所有鍵(key);

values() 方法用於返回字典中所有鍵對應的值(value);

items() 用於返回字典中所有的鍵值對(key-value)。


請看下面的例子:

scores = {'數學': 95, '語文': 89, '英語': 90}print(scores.keys())print(scores.values())print(scores.items())

運行結果:

dict_keys(['數學', '語文', '英語'])
dict_values([95, 89, 90])
dict_items([('數學', 95), ('語文', 89), ('英語', 90)])

可以發現,keys()、values() 和 items() 返回值的類型分別為 dict_keys、dict_values 和 dict_items。

需要注意的是,在 Python 2.x 中,上面三個方法的返回值都是列表(list)類型。但在 Python 3.x 中,它們的返回值並不是我們常見的列表或者元組類型,因為 Python 3.x 不希望用戶直接操作這幾個方法的返回值。

在 Python 3.x 中如果想使用這三個方法返回的數據,一般有下面兩種方案:

1) 使用 list() 函數,將它們返回的數據轉換成列表,例如:

a = {'數學': 95, '語文': 89, '英語': 90}b = list(a.keys())print(b)

運行結果為:

['數學', '語文', '英語']


2) 使用 for in 循環遍歷它們的返回值,例如:

a = {'數學': 95, '語文': 89, '英語': 90}for k in a.keys():    print(k,end=' ')print("\n")for v in a.values():    print(v,end=' ')print("\n")for k,v in a.items():    print("key:",k," value:",v)

運行結果為:

數學 語文 英語

95 89 90

key: 數學  value: 95
key: 語文  value: 89
key: 英語  value: 90

copy() 方法

copy() 方法返回一個字典的拷貝,也即返回一個具有相同鍵值對的新字典,例如:

a = {'one': 1, 'two': 2, 'three': [1,2,3]}b = a.copy()print(b)

運行結果為:

{'one': 1, 'two': 2, 'three': [1, 2, 3]}

可以看到,copy() 方法將字典 a 的數據全部拷貝給了字典 b。

注意,copy() 方法所遵循的拷貝原理,既有深拷貝,也有淺拷貝。拿拷貝字典 a 為例,copy() 方法只會對最表層的鍵值對進行深拷貝,也就是說,它會再申請一塊內存用來存放 {'one': 1, 'two': 2, 'three': []};而對於某些列表類型的值來說,此方法對其做的是淺拷貝,也就是說,b 中的 [1,2,3] 的值不是自己獨有,而是和 a 共有。

請看下面的例子:

a = {'one': 1, 'two': 2, 'three': [1,2,3]}b = a.copy()a['four']=100print(a)print(b)a['three'].remove(1)print(a)print(b)

運行結果為:

{'one': 1, 'two': 2, 'three': [1, 2, 3], 'four': 100}
{'one': 1, 'two': 2, 'three': [1, 2, 3]}
{'one': 1, 'two': 2, 'three': [2, 3], 'four': 100}
{'one': 1, 'two': 2, 'three': [2, 3]}

從運行結果不難看出,對 a 增加新鍵值對,b 不變;而修改 a 某鍵值對中列表內的元素,b也會相應改變。

update() 方法

update() 方法可以使用一個字典所包含的鍵值對來更新己有的字典。

在執行 update() 方法時,如果被更新的字典中己包含對應的鍵值對,那麼原 value 會被覆蓋;如果被更新的字典中不包含對應的鍵值對,則該鍵值對被添加進去。

請看下面的代碼:

a = {'one': 1, 'two': 2, 'three': 3}a.update({'one':4.5, 'four': 9.3})print(a)

運行結果為:

{'one': 4.5, 'two': 2, 'three': 3, 'four': 9.3}

從運行結果可以看出,由於被更新的字典中已包含 key 為「one」的鍵值對,因此更新時該鍵值對的 value 將被改寫;而被更新的字典中不包含 key 為「four」的鍵值對,所以更新時會為原字典增加一個新的鍵值對。

pop() 和 popitem() 方法

pop() 和 popitem() 都用來刪除字典中的鍵值對,不同的是,pop() 用來刪除指定的鍵值對,而 popitem() 用來隨機刪除一個鍵值對,它們的語法格式如下:

dictname.pop(key)
dictname.popitem()

其中,dictname 表示字典名稱,key 表示鍵。

下面的代碼演示了兩個函數的用法:

a = {'數學': 95, '語文': 89, '英語': 90, '化學': 83, '生物': 98, '物理': 89}print(a)a.pop('化學')print(a)a.popitem()print(a)

運行結果:

{'數學': 95, '語文': 89, '英語': 90, '化學': 83, '生物': 98, '物理': 89}
{'數學': 95, '語文': 89, '英語': 90, '生物': 98, '物理': 89}
{'數學': 95, '語文': 89, '英語': 90, '生物': 98}

對 popitem() 的說明

其實,說 popitem() 隨機刪除字典中的一個鍵值對是不準確的,雖然字典是一種無須的列表,但鍵值對在底層也是有存儲順序的,popitem() 總是彈出底層中的最後一個 key-value,這和列表的 pop() 方法類似,都實現了數據結構中「出棧」的操作。

setdefault() 方法

setdefault() 方法用來返回某個 key 對應的 value,其語法格式如下:

dictname.setdefault(key, defaultvalue)

說明,dictname 表示字典名稱,key 表示鍵,defaultvalue 表示默認值(可以不寫,不寫的話是 None)。

當指定的 key 不存在時,setdefault() 會先為這個不存在的 key 設置一個默認的 defaultvalue,然後再返回 defaultvalue。

也就是說,setdefault() 方法總能返回指定 key 對應的 value:


請看下面的代碼:

a = {'數學': 95, '語文': 89, '英語': 90}print(a)a.setdefault('物理', 94)print(a)a.setdefault('化學')print(a)a.setdefault('數學', 100)print(a)

運行結果為:

{'數學': 95, '語文': 89, '英語': 90}
{'數學': 95, '語文': 89, '英語': 90, '物理': 94}
{'數學': 95, '語文': 89, '英語': 90, '物理': 94, '化學': None}
{'數學': 95, '語文': 89, '英語': 90, '物理': 94, '化學': None}

相關焦點

  • python中字典dict的操作技巧匯總
    字典是使用最為廣泛的數據結構了,從結構來看,其內容就是鍵值對,鍵稱為key, 值稱為value, 類似詞典中通過前面的索引來快速查找後面的頁面,通過key可以快速定位對應的值。字典,是python中對這種結構的命名,在其他語言中有其他的名字,比如perl中稱之為哈希。
  • Python數據類型之字典dict
    # 字典是一種可變容器類型,可存儲任意類型對象# 字典以鍵值對存儲數據,key-value形式,鍵值之間使用冒號:分隔,每個鍵值中間用逗號,分隔# 字典包含在大括號,花括號{}中# python中鍵必須是不可變的,但值可取任何數據類型# 元組可以作為 dict 的 key,但列表不能作為元組的 key,dict 要求
  • python之dict字典數據類型講解
    前言python中有一種非常重要的數據類型就是dict字典。字典數據類型使用頻率是很廣泛的,其實字典數據類型非常類似於Java中的Map,JavaScript中的json。本文就重點講解dict字典。案例舉例:{'name' : 'HelloWorld' , 'age' : 30}字典常用方法1、定義字典總結:字典的key使用「單引號」或者「雙引號」括起來,key所對應的value的值是什麼類型就什麼類型。通過type可以查看變量的具體類型。
  • Python dict字典詳解
    2) 通過 fromkeys() 方法創建字典Python 中,還可以使用 dict 字典類型提供的 fromkeys() 方法創建帶有默認值的字典,具體格式為:dictname = dict.fromkeys(list,value=None)其中,list 參數表示字典中所有鍵的列表(list);value 參數表示默認值,如果不寫,則為空值 None
  • P022 python基礎:數據類型之字典dict01
    字典是python裡面非常重要的數據類型,它的結構類似json。它和json是可以互轉的。接下來我們學習字典dcit。
  • Python 入門系列 —— 22. dict 的基本操作詳解
    當然除了中括號,還可以使用 get() 方法來訪問,如下代碼所示:x = thisdict.get("model")獲取字典中的所有 keys 要想獲取字典中的所有 keys,可以直接調用 dict 的 keys() 方法即可。
  • Python基礎知識儲備,字典dict的用法,花個幾分鐘時間學習它吧
    python開發1)字典基本介紹字典Dict中的每一個元素都是通過key-value鍵值對來表示,key用來標識一個元素python字典3)字典中value可以重複dict01 = {20190101: "王一", 20190102:
  • Python——dict字典和set集合
    Python內置了字典:dict的支持,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)存儲,具有極快的查找速度。用Python寫一個dict如下:d = {'張三': 95, '李四': 75, '王五': 85}print(d['張三'])運行結果如下:為什麼dict查找速度這麼快?因為dict的實現原理和查字典是一樣的。
  • Python創建字典的3種方法
    #創建一個空字典empty_dict = dict() print(empty_dict)
  • python數據類型總結——字典
    查字典的時候,通常我們會從某個字的特徵出發,如拼音或偏旁,最終根據索引,找到這個字。python中,也提供一種數據結構,它包含鍵和值兩個部分,通過鍵可以快速地找到對應的值。python字典字典通過大括號來聲明,可包含若干個鍵值對。字典是可變的。如下:
  • python字典詳解-超級完整版
    字典的每個鍵值key=>value對用冒號 : 分割,每個對之間用逗號,分割,整個字典包括在花括號{}中 ,格式如下所示:d = {key1 : value1, key2 : value2 }02 字典的創建有多種方法可以創建字典,以下幾種方法創建的字典均等於 {"one": 1, "two": 2, "three": 3}
  • Python中字典(dict)的基本講解
    一:字典(dict)字典和前面講的列表與元組不太一樣,列表和元組都是一個有序的序列,但是字典是一個無序的可變的序列,並且字典中的元素以「鍵值對」的形式存在,可以方便快捷的進行查找元素。二:字典(dict)的創建字典使用花括號 { } 表示,花括號中的每個鍵值對使用冒號 :分割,然後每個對之間用逗號 , 分割,具體格式寫成下面的形式,dict={key1:value1,key2:value2,key3:value3}舉例如下:在字典的定義中,字典的鍵(key)可是是數字、字符串或是元組,字典的鍵(key)是唯一且不可變的
  • 【python速查系列】字典系列使用速查--創建字典
    直接創建字典這個是最直接的方法,就是在變量定義的時候,直接通過標識符{}來定義字典。
  • Python字典的11個方法超級詳解
    dic = {"python3":123}print(dic.clear())None 02 copy()描述:返回一個字典淺拷貝的副本這個對象也是一個可迭代對象,可以用iter方法將其轉化為一個迭代器,其將字典的每一個鍵值對都轉化成了元組dic1 = iter(dict.items())for i in dic1:print(i)print(type(i))#同時進行引用循環dict = {'name':'Alice','age':23,'address':'Hangzhou'}for i,v in dict.items(
  • 零基礎學習Python字典操作
    dict1 = {'name':'Jame','age':15}print(dict1)使用字典在 Python 中,字典是一系列鍵-值對,每個鍵都與一個值相關聯,我們可以通過鍵來訪問與之相關聯的值,與鍵相關聯的值可以是數字、字符串、列表、字典、或者任何 python 對象。
  • Python字典裡的5個黑魔法
    ': 3, 'b': 2}最後要提醒一下:OrderedDict()雖然是好東西,但是它內部維護了一個雙向鍊表,若數據量很大的話,會非常消耗內存.(良好的代碼,一定是要考慮健壯性,切記)因為試圖通過索引的方式去取值,比如dict[key],當key不是字典dict的鍵,會引起異常,有沒有什麼兩全的辦法有值的時候取值,沒有值的時候即使我取不到也不會發生異常答案是有的,python早就給你準備好了.我們用dict.get()
  • Python的集合與字典
    /usr/bin/python3student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}print(student) # 輸出集合,重複的元素被自動去掉# 成員測試if('Rose'
  • 掌握Python字典的12個例子
    在簡短的介紹之後,讓我們從示例開始深入研究字典。這些例子將涵蓋字典的特性,以及對它們進行操作的函數和方法。1.創建字典我們可以通過在大括號之間提供0個或多個鍵值對來創建字典。類似地,values方法返回所有值。
  • Python入門教程——數據類型之字典
    定義# 定義一個空字典dic = {}# 定義一個字典並初始化dict = {'name': 'python book', 'price': '$19.9', 'pages': 888}上述代碼,name、price、pages為鍵,python book、$19.9、888為值。
  • 用Python字典刪除字典元素實際操作步驟
    用Python字典刪除字典元素實際操作步驟 本文章主要介紹的是Python字典在計算機語言應用過程中,如何更新字典,以及刪除字典元素和字典所需要的相關實際應用方案。