Python 字典:你需要知道的一切 [附例子]
已發表: 2020-04-14如果您使用 Python,您一定聽說過列表、字符串和元組。 今天,我們將討論 Python 的另一個關鍵元素——字典。 看完這篇文章,你應該對 Python 字典,如何創建,如何使用它們有一個比較好的了解。
目錄
什麼是 Python 字典?
在 Python 中,字典是通常稱為關聯數組的數據結構的實現。 它包含無組織的數據值集合(例如,地圖)。 但是,與僅包含單個值作為元素的其他數據類型不同,存儲在字典中的數據值包含一個鍵:值對。 這有助於優化字典。 每個鍵:值對映射與其值關聯的唯一鍵。
在 Python 字典中,鍵是唯一的,但值可能是也可能不是——雖然鍵必須是不可變的數據類型(字符串、數字和元組),但值可以是任何類型。 此外,在 Python 字典中,鍵是區分大小寫的。 因此,具有相同名稱的鍵,但不同情況下的處理方式不同。
詳細了解: Python 數據類型
字典與列表
在 Python 中,字典和列表既有相似之處,也有不同之處。 字典和列表共有的共同特徵包括:
- 它們是可變的。
- 它們是動態的。
- 它們可以嵌套——一個列表可以包含另一個列表,一個字典可以包含另一個字典。 此外,列表可以包含字典,反之亦然。
字典和列表之間的主要區別在於,雖然列表元素可以通過索引訪問(基於它們在列表中的位置),但字典元素是通過鍵訪問的。
Python 字典 - 方法
現在,我們將討論 Python 字典中一些最常用的方法。
- copy() ——它返回一個字典的淺拷貝。
- clear( ) - 它從字典中刪除所有項目。
- type( ) – 它返回傳遞變量的類型。
- pop( ) – 在提供鍵後,它從字典中刪除並返回一個項目。
- popitem( ) – 它刪除並返回任意項(鍵、值)。 此外,如果字典為空,它會引發 KeyError。
- get( ) – 用於訪問鍵的值。
- items( ) – 它返回字典項目(鍵、值)的新視圖。
- str( ) – 它生成字典的可打印字符串表示。
- pop(key[,d]) - 它刪除帶有 key 的項目並返回其值,如果未找到 key,則返回d 。 但是,如果未提供d且未找到密鑰,則返回KeyError 。
- get(key[,d]) - 它返回鍵的值。 如果鍵不存在,則返回d (默認為None )。
- fromkeys(seq[, v]) – 它返回一個新字典,其中包含來自seq的鍵並且值等於 v(默認為None )。
- update([other]) - 它通過覆蓋現有鍵來使用其他鍵/值對更新字典。
如何創建字典?
您可以通過將逗號分隔的鍵值對列表括在花括號 { } 中來創建 Python 字典。 冒號“:”將每個鍵與其關聯的值分開:
d = {
<鍵>:<值>,
<鍵>:<值>,
.
.
.
<鍵>:<值>
}
您還可以使用內置函數dict()創建字典,如下所示:
# 空字典
我的字典 = {}
# 帶有整數鍵的字典
my_dict = {1:'蘋果',2:'球'}
# 混合鍵字典
my_dict = {'name': '約翰', 1: [2, 4, 3]}
# 使用 dict()
my_dict = dict({1:'apple', 2:'ball'})
# 來自將每個項目作為一對的序列
my_dict = dict([(1,'apple'), (2,'ball')])
如何訪問字典中的元素?
要訪問字典中的元素,您必須引用其鍵名。 您可以使用get( )方法來檢索項目,或者您可以在方括號 [ ] 中提及鍵名。 如果在字典中沒有找到鍵, get()方法返回 None 而不是 KeyError。
下面是一個用於訪問字典中元素的代碼示例:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
打印“dict['Name']:”,dict['Name']
打印“字典['年齡']:”,字典['年齡']
如何在字典中添加或更改元素?
由於 Python 字典是可變的,因此您可以添加元素甚至更改字典中包含的現有項的值。 可以通過多種方式將元素添加到字典中。 但是,您可以通過將其與鍵一起定義來一次將一個值添加到字典中。

例如, dict[key] = 'value'。 要更新字典中的現有值,您必須使用內置的update()方法。 您必須記住,在向字典添加值時,如果該值已經存在,則該值將被更新,否則帶有該值的新鍵將被添加到字典中。
my_dict = {'name':'Jack', 'age': 26}
# 更新值
我的字典['年齡'] = 27
#輸出:{'年齡':27,'名字':'傑克'}
打印(我的字典)
# 添加項目
my_dict['address'] = '市中心'
# 輸出:{'address': 'Downtown', 'age': 27, 'name': 'Jack'}
打印(我的字典)
如何從字典中刪除或刪除元素?
要從字典中刪除或刪除項目,可以使用pop ( )方法。 它將使用提供的 ket 刪除特定項目並返回該值。 您還可以使用popitem( )方法從字典中刪除並返回任意元素(鍵和值)。
如果要一次刪除所有項目,可以使用clear( )方法。 您還可以使用 del 關鍵字刪除單個項目或使用del dict ( )方法刪除整個字典本身。
使用 del dict ( ) 方法的示例:
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['名稱']; # 刪除帶有鍵“名稱”的條目
dict.clear(); # 刪除字典中的所有條目
刪除字典; # 刪除整個字典
打印“字典['年齡']:”,字典['年齡']
打印“dict['School']:”,dict['School']
還可以學習:印度的 Python 開發人員薪水
如何遍歷字典?
在 Python 字典中,您可以使用for循環進行循環。 當您遍歷字典時,字典的鍵是返回值。
遍歷字典的示例是:
對於thisdict中的x:
打印(x)
閱讀:最重要的 Python 函數
如何檢查字典中是否存在鍵?
您可以使用“ in ”關鍵字來檢查字典中是否存在特定鍵,如下所示:
這個字典 = {
“品牌”:“法拉利”,
“型號”:“Daytone”,
“年份”:“1968”
}
如果thisdict中的“模型”:
print(“是的,‘模型’是 thisdict 字典中的鍵之一”)
如何確定字典的長度?
您可以使用len( )方法設置字典的長度,即確定它有多少元素(鍵:值對) ,如下所示:
打印(len(thisdict))
如何復製字典?
您可以使用內置的copy()方法複製字典。 但是,您不能通過鍵入dict2 = dict1來複製字典,因為dict2只是對dict1的引用。
下面是一個使用copy()方法的例子:
這個字典 = {
“品牌”:“福特”,
“模型”:“野馬”,
“年”:1964
}
mydict = thisdict.copy()
打印(mydict)
Python字典:理解
在 Python 中,字典理解是一種從可迭代對象創建新字典的直接而簡潔的方法。 它由一個表達式對(鍵:值)和花括號 { } 內的 for 語句組成。 字典理解可以包含多個for或if語句。
這是創建字典的示例,其中每個項目是一對數字及其平方:
squares = {x: x*x for x in range(6)}
# 輸出:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
打印(正方形)
閱讀更多: Python 數據可視化庫
包起來
基本上就是這樣——你需要了解的關於 Python 字典的所有基礎知識!
如果您想了解 Python 以及有關數據科學的一切,請查看 upGrad 的數據科學認證課程,該課程是為在職專業人士創建的,提供 10 多個案例研究和項目、實用的實踐研討會、與行業專家的指導、一對一-1 與行業導師,400 多個小時的學習和頂級公司的工作協助。
Python中對字典的需求是什麼?
數據值的無序集合是 Python 字典。 Python 中需要字典來存儲數據值,就像地圖一樣。 在所有其他數據類型中,它們只能將單個值作為元素保存。 但是,字典能夠保存鍵:值對。 這對使字典的功能更加優化。
要在 Python 中創建字典,您只需將元素放在花括號中,用“逗號”分隔所有元素。 字典中的值可以重複和復制,但不能重複字典中的鍵。 字典中的鍵是區分大小寫的,因此即使兩個具有相同名稱但大小寫不同的鍵也會被區別對待。
什麼可以存儲在 Python 字典中?
Python 中使用字典在任何唯一鍵的幫助下檢索數據。 您可以存儲在 Python 變量中的所有內容都可以存儲在 Python 字典中。 您甚至可以通過創建列表將一個字典嵌套到另一個字典中。 相反,密鑰必須是不可變的。
您可以通過調用存儲特定值的鍵輕鬆檢索存儲的值。 如果您對返回的列表進行任何更改,那麼它也會對字典產生影響。 需要了解存儲在字典中的值和檢索到的列表只是相同的對象。
Hashtable 和 Dictionary 有何不同?
Hashtable 是非泛型集合,而 Dictionary 是數據值的泛型集合。 允許存儲相同數據類型的鍵值對和不同數據類型的鍵值對,而字典中只能存儲相同數據類型的鍵值對。
由於 Hashtable 中存在裝箱和拆箱,因此與 Dictionary 相比,數據檢索過程較慢。 Hashtable 中沒有維護順序,但您將始終在 Dictionary 中看到存儲值的維護順序。