Python 字典——你需要知道的一切

Python 字典——你需要知道的一切

Python 字典是一種非常有用的數據結構,您會發現自己在編程過程中經常會用到它。它們將鍵映射到各自值的獨特能力允許在管理複雜數據集時快速、高效地訪問和簡化代碼。

Python 字典本質上是關聯數組的一種實現。它們提供了一種靈活高效的方式來以鍵值對的形式存儲和操作數據。

它們非常通用,可以容納可變和有序的集合,而不允許重複鍵。

當我們在本文中深入探討Python字典時,您會發現它們是組織和訪問數據的強大工具。

因此,請務必熟悉Python字典的來龍去脈,以充分發揮它們在您項目中的潛力!

Python 字典——你需要知道的一切

目錄

理解 Python 字典

Python中的字典是一種功能強大且靈活的數據結構,可讓您存儲鍵值對的集合。將字典視為一種將鍵映射到其對應值的方式,從而可以輕鬆檢索與特定標識符相關的信息。

要創建字典,您可以使用大括號 ( {} ) 括起以逗號分隔的鍵值對列表。例如:

your_dict = {"key1": "value1", "key2": "value2", "key3": "value3"}

請記住,Python 中的字典是可變的,這意味著您可以在創建字典後修改其內容。要添加或更新鍵值對,只需使用以下語法:

your_dict["new_key"] = "new_value"

#You can also update an old key's value
your_dict["old_key"] = "new_value"

在訪問字典中的值時,您只需要鍵:

value = your_dict["key1"]

Python 字典——你需要知道的一切

如果您嘗試訪問字典中不存在的鍵,您將遇到 KeyError。為避免這種情況,您可以使用 get() 方法:

value = your_dict.get("non_existent_key", "default_value")

您必須記住的一件事是 Python 字典不能包含重複的鍵。每個鍵必須是唯一的並且是不可變的數據類型。

例如,您可以使用元組、字符串、整數甚至布爾值作為鍵。但是,您不能使用列表、字典或集合。

對值沒有這樣的限制。您可以使用可變和不可變數據類型。

使用 del關鍵字從字典中刪除元素:

del your_dict["key1"]

它們還提供了幾種迭代其內容的方法。例如,您可以遍歷字典鍵、值,甚至兩者:

for key in your_dict.keys():
    print(key)

for value in your_dict.values():
    print(value)

for key, value in your_dict.items():
    print(key, value)

您現在可以使用這些字典方法和技術在使用Python時有效地存儲、檢索和操作數據。

如何創建 Python 字典

有兩種主要的方法可以創建 Python 字典:使用大括號和dict()構造函數。

使用大括號

可用於創建字典的一種方法是使用大括號 ( {} )。要初始化一個空字典,您可以簡單地使用empty_dict = {}

要創建具有鍵值對的字典,請使用冒號分隔鍵和值。接下來,用逗號分隔每一對:

python_dict = {
    'key1': 'value1',
    'key2': 'value2',
    'key3': 'value3'
}

使用這種格式,您創建了一個包含三個鍵值對的 Python 字典。請記住,鍵必須是唯一的,而字典值可以重複。

使用字典構造函數

另一種創建 Python 字典的方法是使用dict()構造函數。要創建空字典,只需不帶任何參數調用此函數:empty_dict = dict()

要使用dict()構造函數創建字典,可以使用以下語法:

python_dict = dict(
    key1='value1',
    key2='value2',
    key3='value3'
)

此方法還創建了一個包含三個鍵值元素的 Python 字典。請注意,與大括號方法不同,dict()構造函數不需要在鍵周圍加上引號。

但是,字典值仍然需要用引號括起來

現在您已經熟悉了兩種創建 Python 字典的方法,您可以開始在您的代碼中實現它們並在您的應用程序中利用它們的強大功能。

如何訪問字典元素

在本節中,您將了解訪問字典中元素的不同方法。字典將數據存儲在鍵值對中,您可以使用它們各自的鍵訪問每個字典值。

我們將介紹兩種流行的方法:使用get方法。

使用按鍵

訪問字典元素最直接的方法之一是使用鍵。要獲取特定字典鍵的值,只需將鍵放在字典名稱旁邊的方括號內:

my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
name_value = my_dict['name']

phone_value = mydict['phone-number']

在此示例中,name_value將存儲字符串'John'。請注意,如果您嘗試訪問不存在的密鑰,Python 將引發KeyError

Python 字典——你需要知道的一切

使用獲取方法

直接使用鍵的替代方法是get()方法,它允許您訪問字典元素而不會引發 KeyError 的風險相反,如果找不到指定的鍵,get方法會返回一個默認值:

my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
name_value = my_dict.get('name', 'Key not found')
country_value = my_dict.get('country', 'Key not found')

在此示例中,name_value 將像以前一樣存儲字符串“ John ”,因為字典中存在“ name ”鍵。但是,country_value 將存儲默認值“ Key not found ”,因為字典中不存在“ country ”鍵。

Python 字典——你需要知道的一切

get ()方法提供了一種更靈活的訪問字典元素的方法,因為它允許您優雅地處理丟失的鍵。您可以根據您的要求和遇到不存在的密鑰的可能性選擇使用任何一種方法。

如何修改字典元素

在本節中,您將學習如何修改 Python 字典中的元素。完成此操作有兩個主要操作:添加新元素和更新現有元素。

這兩種方法都將幫助您保持詞典的準確性和實用性。讓我們看看它們:

  1. 添加新元素

向字典中添加新元素很簡單。為此,使用賦值運算符指定新的鍵值對,如下所示:

your_dict = {"key1": "value1", "key2": "value2"}
your_dict["new_key"] = "new_value"

執行上面的代碼片段後,您的字典現在將包含新對:

{"key1": "value1", "key2": "value2", "new_key": "new_value"}

您還可以使用字典的update()方法一次添加多個鍵值對

new_elements = {"key3": "value3", "key4": "value4"}
your_dict.update(new_elements)

現在,您的詞典將包含以下條目:

{"key1": "value1", "key2": "value2", "key3": "value3", "key4": "value4"}
  1. 更新現有元素

要更新現有元素的值,您只需引用鍵並為其分配一個新值:

your_dict["key1"] = "updated_value1"

此更改將導致以下字典:

{"key1": "updated_value1", "key2": "value2", "key3": "value3", "key4": "value4"}

如果您需要一次更新多個元素,請再次使用update()方法。要使用它,請傳入包含所需修改的新字典。

例如,讓我們用 updates 字典中的值更新 your_dict 字典:

updates = {"key2": "updated_value2", "key4": "updated_value4"}
your_dict.update(updates)

應用這些更新後,your_dict 字典將如下所示:

{"key1": "updated_value1", "key2": "updated_value2", "key3": "value3", "key4": "updated_value4"}

這些操作是工作時必不可少的工具,因為它們可以使您的數據結構保持最新和準確。

刪除字典元素

在本節中,我們將探討在 Python 中刪除字典元素的兩種常用方法:del關鍵字clear()方法。

  1. 刪除關鍵字

del 關鍵字用於從字典中刪除特定的鍵值對。如果字典中不存在鍵,它就地運行並引發 KeyError。要刪除一個元素,只需使用以下語法:

del my_dict[key]

例如,如果你想從名為 my_dict 的字典中刪除一個名為“ brand ”的鍵,你將這樣寫:

del my_dict["brand"]

請記住,在使用 del 關鍵字之前確保鍵存在於字典中是一種很好的做法。您可以通過檢查鍵是否在字典中來做到這一點:

if "brand" in my_dict:
    del my_dict["brand"]
  1. 清除方法

clear() 方法是另一種刪除字典元素的方法。此方法在一次操作中刪除所有字典鍵和值,從而生成一個空字典。

要在字典上使用 clear() 方法,只需調用它即可。例如,如果你有一個名為 my_dict 的現有字典,並且你想刪除它的所有內容,你可以這樣寫:

my_dict.clear()

總之,您學習了兩種從 Python 字典中刪除元素的方法:用於刪除單個鍵值對的 del 關鍵字和用於清空整個字典的 clear() 方法。

常用的詞典方法有哪些?

在本節中,我們將探討一些常見的 Python 字典方法。這些內置方法將幫助您操縱和修改字典以滿足您的需要。

鑰匙

要從字典中檢索所有鍵,可以使用keys()方法。這將返回一個包含所有字典鍵的視圖對象。

例如:

your_dict = {'a': 1, 'b': 2, 'c': 3}
key_view = your_dict.keys()
print(key_view)
# Output: dict_keys(['a', 'b', 'c'])

價值觀

同樣,values()方法允許您獲取存儲在字典中的所有值。這也顯示為視圖對象。

例如:

value_view = your_dict.values()
print(value_view)
# Output: dict_values([1, 2, 3])

項目

如果您需要同時訪問鍵和值,請使用 items() 方法。這將返回一個包含元組形式的鍵值對的視圖對象。

讓我們看一個例子:

item_view = your_dict.items()
print(item_view)
# Output: dict_items([('a', 1), ('b', 2), ('c', 3)])

更新

update() 方法允許您通過添加或更新鍵值元素來修改字典。要使用該方法,您必須提供字典作為參數。

要合併兩個字典或更新特定鍵,請使用此方法:

your_dict.update({'d': 4, 'e': 5})
print(your_dict)
# Output: {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

流行音樂

使用 pop() 方法,您可以從字典中刪除特定項目。要使用它,請提供要刪除的鍵作為方法中的參數。

該方法將返回與指定鍵關聯的值並將其從字典中刪除:

removed_value = your_dict.pop('a')
print(removed_value)
# Output: 1
print(your_dict)
# Output: {'b': 2, 'c': 3, 'd': 4, 'e': 5}

彈出項

popitem ()方法刪除字典中的最後一個鍵值對。它返回一個包含刪除的鍵和值的元組。例如:

removed_item = your_dict.popitem()
print(removed_item)
# Output: ('e', 5)
print(your_dict)
# Output: {'b': 2, 'c': 3, 'd': 4}

通過使用這些方法,您可以有效地管理和操作您的詞典以實現各種任務。

使用 Python 字典

在本節中,您將學習使用字典的不同技術,例如遍歷它們、使用字典推導式以及使用嵌套字典。

遍歷字典

要遍歷字典,您可以使用內置方法items()來遍歷鍵值對。這允許您以可讀且高效的方式對鍵和值執行操作。

這是一個例子:


my_dict = {"apple": 1, "banana": 2, "cherry": 3}

for key, value in my_dict.items():
    print(key, value)

或者,您可以使用keys()values()方法專門迭代字典鍵或值。

什麼是詞典理解?

字典推導式是使用單行代碼創建字典的簡潔方法。它們類似於列表理解,但使用字典代替。

下面是一個字典理解的例子,它對 1 到 5 的數字進行平方:


squared_numbers = {num: num**2 for num in range(1, 6)}

字典理解對於過濾字典或轉換其值等任務非常有價值。

什麼是嵌套字典?

嵌套字典是包含其他字典作為值的字典。它們可用於表示複雜的分層數據結構。

下面是一個嵌套字典的例子:


nested_dict = {
    "person1": {"name": "Alice", "age": 30},
    "person2": {"name": "Bob", "age": 24}
}

要訪問嵌套字典中的元素,請使用多重索引:


name_p1 = nested_dict["person1"]["name"]

您可以根據需要進一步編輯或操作嵌套字典中的元素。在使用複雜的嵌套字典時,請記住跟踪鍵和嵌套級別以避免混淆或錯誤。

常見的字典用例

Python 字典用途廣泛,使您能夠組織和管理各種數據類型。在本節中,您將探索字典的一些常見用例,這將增強您的理解並幫助您在項目中有效地實施它們。

1.存儲鍵值數據:字典非常適合存儲具有唯一鍵和關聯值的數據,例如用戶名和用戶信息或產品 ID 和產品詳細信息:

{
  "username1": {"name": "Alice", "email": "[email protected]"},
  "username2": {"name": "Bob", "email": "[email protected]"}
}

在有關如何使用 Python 在 LuckyTemplates 中構建 Google 新聞聚合器的視頻中可以看到這方面的示例。

https://youtu.be/InsDb_DR15E

在本視頻中,我們使用字典來存儲從 GoogleNews API 調用中獲取的數據值。

2.計算出現次數:您可以使用詞典來計算項目的出現次數,例如文檔中單詞的出現頻率。使用鍵表示唯一項,使用值表示計數,您可以有效地管理此類數據。

有趣的是,您可以使用Python Collections 模塊中的Counter 類來執行此操作。它接受一個無序列表並返回一個字典,其中每個唯一元素作為鍵,它們的頻率作為它們各自的值。

3.將鍵映射到多個值:如果需要為每個字典鍵存儲多個值,可以使用列表或集合作為字典中的值:

{
  "fruits": ["apple", "banana", "mango"],
  "vegetables": ["carrot", "broccoli", "spinach"]
}

4.緩存計算結果:字典可用於緩存昂貴操作的結果。這在記憶技術和動態規劃中特別有用,您可以在其中存儲計算結果以避免冗餘計算。

5.創建倒排索引:在像搜索引擎這樣的情況下,您可能需要一個倒排索引,將每個搜索詞映射到包含該詞的資源列表。使用字典可以讓您有效地存儲這些數據:

{
  "python": ["resource1", "resource3"],
  "dictionary": ["resource2", "resource3", "resource4"]
}

這些只是說明 Python 字典的強大功能和多功能性的幾個示例。通過了解這些用例及其應用,您可以充分發揮字典的潛力,為您的編程任務構建高效的解決方案!


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的