Python 简明教程

Python - Add Dictionary Items

Add Dictionary Items

在 Python 中添加字典项是指向现有字典中插入新的键值对。字典是可变的数据结构,其中存储键值对集合,每个键都与相应的值关联。

向字典中添加项目允许在程序执行期间根据需要动态更新和扩展其内容。

我们可以使用以下各种方式在 Python 中添加字典项:

  1. Using square brackets

  2. Using the update() method

  3. Using a comprehension

  4. Using unpacking

  5. Using the Union Operator

  6. Using the |= Operator

  7. Using setdefault() method

  8. Using collections.defaultdict() method

Add Dictionary Item Using Square Brackets

Python 中的方括号 [] 用于通过索引和切片操作访问序列(如列表和字符串)中的元素。此外,使用字典时,方括号用于指定访问或修改关联值的键。

你可以通过在方括号中指定键并为其分配值来向字典添加项目。如果该键已存在于字典对象中,则其值将更新为 val。如果该键不存在于字典中,则将添加新的键值对。

Example

在此示例中,我们创建一个名为“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}

Add Dictionary Item Using the update() Method

Python 字典中的 update() 方法用于将另一个字典或键值对的可迭代对象的内容合并到当前字典中。它添加或更新键值对,确保使用新值更新现有键,并将新键添加到字典中。

你可以使用 update() 方法通过传递另一个字典或键值对的可迭代对象来向字典添加多个项目。

Example

在以下示例中,我们使用 update() 方法将多个新的键值对“Kavya”:58 和“Mohan”:98 添加到字典“marks”中:

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}

Add Dictionary Item Using Unpacking

在 Python 中解包是指从集合中提取各个元素(例如,列表、元组或字典),并在单个语句中将它们分配给变量。这可以使用 * operator for iterables like lists and tuples, and the * * 算符来完成 dictionaries

我们可以通过使用 ** 解包算符将两个或两个以上的字典进行合并来添加字典项。

Example

在下面的示例中,我们初始化了名为“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}

Add Dictionary Item Using the Union Operator (|)

Python 中的并集算符,由 | 符号表示,用于将两个集合的元素合并到一个新集合中,该新集合包含来自两个集合的所有唯一元素。它还可以在 Python 3.9 及更高版本中与字典一起使用,以合并两个字典的内容。

我们可以通过将两个字典合并到一个新字典中来添加字典项,其中包括来自两个字典的所有键值对。

Example

在这个示例中,我们使用 | 算符将“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}

Add Dictionary Item Using the "|=" Operator

Python 中的 |= 算符是集合和字典的原地并集算符。它将左手侧的集合或字典使用右手侧的集合或字典中的元素进行更新。

我们可以通过使用另一个字典中的键值对来更新现有的字典,从而使用 |= 算符添加字典项。如果存在重叠键,则右手侧字典中的值将覆盖左手侧字典中的值。

Example

在下面的示例中,我们使用 |= 算符使用来自“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}

Add Dictionary Item Using the setdefault() Method

Python 中的 setdefault() 方法用于获取字典中指定键的值。如果键不存在,则它会使用指定的默认值插入该键。

我们可以通过显式指定键和默认值,从而使用 setdefault() 方法添加字典项。

Example

在这个示例中,我们使用 setdefault() 将键值对:“major”:“Computer Science”添加到“student”字典中:

# 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'}

Add Dictionary Item Using the collections.defaultdict() Method

Python 中的 collections.defaultdict() 方法是内置“dict”类的子类,它创建具有尚未设置的键的默认值的字典。它是 Python 标准库中 collections 模块的一部分。

我们可以通过指定默认工厂,从而使用 collections.defaultdict() 方法添加字典项,该工厂确定尚未设置的键的默认值。首次访问丢失的键时,将调用默认工厂来创建默认值,并将此值插入字典中。

Example

在这个示例中,我们使用不同的默认工厂来初始化 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