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 語句組成。 字典理解可以包含多個forif語句。

這是創建字典的示例,其中每個項目是一對數字及其平方:

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 中看到存儲值的維護順序。