用 Python 向字典新增元素的完整指南|從基礎到進階全面解析

1. 什麼是 Python 的字典(Dictionary)

Python 的字典(Dictionary)是一種儲存鍵值對(key-value pair)的資料型別,可用來高效地管理資料。與列表(List)或元組(Tuple)不同,字典不保留順序,但可以透過鍵快速取得對應的值,是 Python 程式中經常使用的資料型別之一。

字典的基本特性

  • 鍵值對:字典是由唯一的鍵(key)和其對應的值(value)組成。鍵必須是不可變的型別(例如字串、數字等),而值可以是任何型別。
  • 無順序性:Python 的字典不保留元素的插入順序,因此透過指定鍵來查找對應的值。
  • 快速查值:可以使用鍵快速取得對應的值。

建立字典的範例

以下範例展示了如何建立一個字典,以及使用鍵來取得對應的值。

“`

建立字典

my_dict = {
“apple”: “蘋果”,
“banana”: “香蕉”,
“cherry”: “櫻桃”
}

取得值

print(my_dict[“apple”]) # 輸出: 蘋果
“`

2. 基本的 Python 字典新增元素方法

在 Python 中,若要向現有的字典新增元素,可以使用簡單的賦值語法。這種方式對初學者來說非常直觀且容易理解。

新增元素的基本語法

要在字典中新增新元素,可以使用以下語法:

“`

新增新元素

my_dict[“orange”] = “橘子”
print(my_dict)

輸出: {‘apple’: ‘蘋果’, ‘banana’: ‘香蕉’, ‘cherry’: ‘櫻桃’, ‘orange’: ‘橘子’}

“`

當指定的鍵尚未存在時,這種方式會新增新元素。不過需要注意的是,如果使用已存在的鍵,原本的值將會被覆蓋。

使用相同鍵時會覆蓋原本的值

如果使用已存在的鍵來新增值,該鍵對應的值將會被新的值所取代。

“`
my_dict[“banana”] = “香蕉果汁”
print(my_dict)

輸出: {‘apple’: ‘蘋果’, ‘banana’: ‘香蕉果汁’, ‘cherry’: ‘櫻桃’, ‘orange’: ‘橘子’}

“`

如上所示,已存在的鍵 "banana" 對應的值被更新為新的值,原本的資料被覆蓋。

侍エンジニア塾

3. 避免覆蓋現有值的新增方式

如果你想避免覆蓋字典中已有的值,可以使用 setdefault() 方法。這個方法只有在指定的鍵不存在於字典中時,才會新增元素,因此可以避免不小心覆蓋現有資料。

setdefault() 的使用範例

以下的程式碼展示如何使用 setdefault() 方法,在不覆蓋原有值的情況下新增新元素。

“`
my_dict.setdefault(“banana”, “香蕉冰沙”)
my_dict.setdefault(“grape”, “葡萄”)
print(my_dict)

輸出: {‘apple’: ‘蘋果’, ‘banana’: ‘香蕉果汁’, ‘cherry’: ‘櫻桃’, ‘orange’: ‘橘子’, ‘grape’: ‘葡萄’}

“`

在這個例子中,鍵 "banana" 已經存在,因此其值不會被覆蓋。而新鍵 "grape" 則會被新增到字典中。

4. 合併多個字典以新增元素的方法

若要將多個字典合併成一個,可以使用 update() 方法。透過這種方式,可以一次性將另一個字典的所有元素新增進來,非常適合用來有效地管理資料。

update() 方法的使用範例

以下是使用 update() 方法合併兩個字典的範例:

“`
dict1 = {“a”: 1, “b”: 2}
dict2 = {“b”: 3, “c”: 4}
dict1.update(dict2)
print(dict1)

輸出: {‘a’: 1, ‘b’: 3, ‘c’: 4}

“`

在這個例子中,兩個字典中都有鍵 "b",因此 dict1 的值會被 dict2 的值所覆蓋。而新的鍵 "c" 則會被新增進 dict1

避免覆蓋的方法

若希望在合併字典時避免覆蓋現有值,可以搭配 setdefault() 方法與 for 迴圈來實現。

“`
for key, value in dict2.items():
dict1.setdefault(key, value)
print(dict1)

輸出: {‘a’: 1, ‘b’: 2, ‘c’: 4}

“`

5. 進階技巧:根據條件新增元素

在實際開發中,有時需要根據特定條件來決定是否將某個元素新增至字典。例如,只有符合某些條件的資料才需要被加入。這種情況下可以使用 if 條件判斷或 for 迴圈來動態新增元素。

根據條件新增元素的範例

以下程式碼示範如何根據價格條件,只將符合條件的水果新增至字典中:

“`
items = [(“apple”, 100), (“banana”, 150), (“cherry”, 200)]fruit_dict = {}

for fruit, price in items:
if price > 120:
fruit_dict[fruit] = price

print(fruit_dict)

輸出: {‘banana’: 150, ‘cherry’: 200}

“`

在這個例子中,只有價格超過 120 的水果才會被加入到字典中。透過條件式的方式,可以更靈活地控制要加入哪些資料。

6. 操作字典時的錯誤處理

在操作字典時,最常見的錯誤之一是 KeyError。當你嘗試存取一個不存在於字典中的鍵時,便會發生這個錯誤。為了避免這類錯誤,建議先檢查鍵是否存在,或使用 get() 方法來安全地取得值。

避免 KeyError 的方法

以下範例示範如何使用 get() 方法,當鍵不存在時回傳預設值,從而避免錯誤發生:

“`
value = my_dict.get(“pear”, “鍵不存在”)
print(value)

輸出: 鍵不存在

“`

如上所示,即使 "pear" 這個鍵不在字典中,也不會發生錯誤,而是回傳我們自定義的預設值。

年収訴求

7. 總結:字典新增元素的最佳實踐

Python 的字典新增元素方式多種多樣,從簡單賦值到條件式新增,再到合併多個字典,每種方法都有其適用情境。以下整理幾個重點,幫助你更有效地使用字典:

  • 基本新增:使用 [鍵] = 值 方式快速新增元素。
  • 避免覆蓋:使用 setdefault() 方法避免意外覆寫原有資料。
  • 合併字典:透過 update() 方法一次新增多個元素。
  • 錯誤處理:使用 get() 或先檢查鍵是否存在,以避免 KeyError

靈活運用這些技巧,可以讓你在處理 Python 字典時更加順手且穩定。