Python - 新增字典項



新增字典項

在 Python 中新增字典項是指將新的鍵值對插入到現有的字典中。字典是可變的資料結構,用於儲存鍵值對的集合,其中每個鍵都與相應的值相關聯。

向字典新增項允許您根據需要在程式執行期間動態更新和擴充套件其內容。

我們可以使用多種方法在 Python 中新增字典項,例如:

  • 使用方括號
  • 使用 update() 方法
  • 使用推導式
  • 使用解包
  • 使用並集運算子
  • 使用 |= 運算子
  • 使用 setdefault() 方法
  • 使用 collections.defaultdict() 方法

使用方括號新增字典項

Python 中的方括號 **[]** 用於透過索引和切片操作訪問列表和字串等序列中的元素。此外,在使用字典時,方括號用於指定用於訪問或修改關聯值的鍵。

您可以透過在方括號中指定鍵併為其賦值來向字典新增項。如果鍵已存在於字典物件中,則其值將更新為 val。如果鍵不存在於字典中,則會新增新的鍵值對。

示例

在這個例子中,我們建立了一個名為“marks”的字典,其鍵代表姓名,相應的值為整數。然後,我們使用方括號表示法將新的鍵值對 'Kavta': 58 新增到字典中:

marks = {"Savita":67, "Imtiaz":88, "Laxman":91, "David":49}
print ("Initial dictionary: ", marks)
marks['Kavya'] = 58
print ("Dictionary after new addition: ", marks)

這將產生以下輸出:

Initial dictionary:  {'Savita': 67, 'Imtiaz': 88, 'Laxman': 91, 'David': 49}
Dictionary after new addition:  {'Savita': 67, 'Imtiaz': 88, 'Laxman': 91, 'David': 49, 'Kavya': 58}

使用 update() 方法新增字典項

Python字典中的`update()`方法用於將另一個字典或鍵值對的可迭代物件的內容合併到當前字典中。它新增或更新鍵值對,確保用新值更新現有鍵,並將新鍵新增到字典中。

可以透過傳遞另一個字典或鍵值對的可迭代物件,使用`update()`方法向字典中新增多個項。

示例

在下面的例子中,我們使用`update()`方法向字典`marks`中新增多個新的鍵值對'Kavya': 58 和 'Mohan': 98 −

marks = {"Savita":67, "Imtiaz":88}
print ("Initial dictionary: ", marks)
marks.update({'Kavya': 58, 'Mohan': 98})
print ("Dictionary after new addition: ", marks)

我們將得到如下所示的輸出 −

Initial dictionary:  {'Savita': 67, 'Imtiaz': 88}
Dictionary after new addition:  {'Savita': 67, 'Imtiaz': 88, 'Kavya': 58, 'Mohan': 98}

使用解包新增字典項

Python中的解包是指從集合(如列表、元組或字典)中提取單個元素,並將它們在一個語句中賦值給變數。這可以使用`*`運算子來對列表和元組等可迭代物件進行操作,並使用`**`運算子來對**字典**進行操作。

我們可以使用解包來新增字典項,方法是使用`**`解包運算子組合兩個或多個字典。

示例

在下面的例子中,我們初始化了兩個名為“marks”和“marks1”的字典,兩者都包含名稱及其對應的整數值。然後,我們透過使用字典解包合併“marks”和“marks1”來建立一個新的字典“newmarks” −

marks = {"Savita":67, "Imtiaz":88, "Laxman":91, "David":49}
print ("marks dictionary before update: \n", marks)
marks1 = {"Sharad": 51, "Mushtaq": 61, "Laxman": 89}
newmarks = {**marks, **marks1}
print ("marks dictionary after update: \n", newmarks)

以上程式碼的輸出如下 −

marks dictionary before update:
 {'Savita': 67, 'Imtiaz': 88, 'Laxman': 91, 'David': 49}
marks dictionary after update:
 {'Savita': 67, 'Imtiaz': 88, 'Laxman': 89, 'David': 49, 'Sharad': 51, 'Mushtaq': 61}

使用並集運算子 (|) 新增字典項

Python中的並集運算子,用`|`符號表示,用於將兩個集合的元素組合成一個新集合,其中包含兩個集合中的所有唯一元素。它也可以在Python 3.9及更高版本中與字典一起使用,以合併兩個字典的內容。

我們可以使用並集運算子透過將兩個字典合併到一個新字典中來新增字典項,其中包括兩個字典中的所有鍵值對。

示例

在這個例子中,我們使用`|`運算子組合字典“marks”和“marks1”,如果鍵重複,“marks1”的值優先 −

marks = {"Savita":67, "Imtiaz":88, "Laxman":91, "David":49}
print ("marks dictionary before update: \n", marks)
marks1 = {"Sharad": 51, "Mushtaq": 61, "Laxman": 89}
newmarks = marks | marks1
print ("marks dictionary after update: \n", newmarks)

以上程式碼的輸出如下所示 −

marks dictionary before update:
 {'Savita': 67, 'Imtiaz': 88, 'Laxman': 91, 'David': 49}
marks dictionary after update:
 {'Savita': 67, 'Imtiaz': 88, 'Laxman': 89, 'David': 49, 'Sharad': 51, 'Mushtaq': 61}

使用`|=`運算子新增字典項

Python中的`|=`運算子是集合和字典的原地並集運算子。它使用來自右側集合或字典中的元素來更新左側的集合或字典。

我們可以使用`|=`運算子透過使用來自另一個字典的鍵值對更新現有字典來新增字典項。如果存在重疊的鍵,則來自右側字典的值將覆蓋左側字典中的值。

示例

在下面的例子中,我們使用`|=`運算子用來自“marks1”的鍵值對更新“marks”,其中來自“marks1”的值在鍵重複時優先 −

marks = {"Savita":67, "Imtiaz":88, "Laxman":91, "David":49}
print ("marks dictionary before update: \n", marks)
marks1 = {"Sharad": 51, "Mushtaq": 61, "Laxman": 89}
marks |= marks1
print ("marks dictionary after update: \n", marks)

產生的輸出如下所示 −

marks dictionary before update:
 {'Savita': 67, 'Imtiaz': 88, 'Laxman': 91, 'David': 49}
marks dictionary after update:
 {'Savita': 67, 'Imtiaz': 88, 'Laxman': 89, 'David': 49, 'Sharad': 51, 'Mushtaq': 61}

使用`setdefault()`方法新增字典項

Python中的`setdefault()`方法用於獲取字典中指定鍵的值。如果鍵不存在,它將插入具有指定預設值的鍵。

我們可以使用`setdefault()`方法透過指定鍵和預設值來新增字典項。

示例

在這個例子中,我們使用`setdefault()`向“student”字典新增鍵值對“major”: “Computer Science” −

# Initial dictionary
student = {"name": "Alice", "age": 21}
# Adding a new key-value pair
major = student.setdefault("major", "Computer Science")
print(student)

由於鍵“major”不存在,因此它將使用指定的預設值新增,如下面的輸出所示 −

{'name': 'Alice', 'age': 21, 'major': 'Computer Science'}

使用`collections.defaultdict()`方法新增字典項

Python中的`collections.defaultdict()`方法是內建“dict”類的子類,它建立具有預設值的字典,這些預設值用於尚未設定的鍵。它是Python標準庫中`collections`模組的一部分。

我們可以使用`collections.defaultdict()`方法透過指定一個預設工廠來新增字典項,該工廠確定尚未設定的鍵的預設值。首次訪問缺失的鍵時,將呼叫預設工廠來建立預設值,並將此值插入到字典中。

示例

在這個例子中,我們正在初始化具有不同預設工廠的`defaultdict`例項:`int`用於用0初始化缺失的鍵,`list`用於用空列表初始化缺失的鍵,以及自定義函式`default_value`用於用函式的返回值初始化缺失的鍵 −

from collections import defaultdict
# Using int as the default factory to initialize missing keys with 0
d = defaultdict(int)
# Incrementing the value for key 'a'
d["a"] += 1  
print(d)  

# Using list as the default factory to initialize missing keys with an empty list
d = defaultdict(list)
# Appending to the list for key 'b'
d["b"].append(1)  
print(d)  

# Using a custom function as the default factory
def default_value():
    return "N/A"

d = defaultdict(default_value)
print(d["c"]) 

獲得的輸出如下 −

defaultdict(<class 'int'>, {'a': 1})
defaultdict(<class 'list'>, {'b': [1]})
N/A
廣告