在 Python 中添加字典项指的是将新的键值对插入到现有的字典中。字典是一种可变的数据结构,用于存储键值对集合,在这种集合中每个键都与其对应的一个值相联系。
添加项到字典允许你在程序执行期间根据需要动态更新和扩展其内容。
我们可以使用多种方式来添加字典项,例如:
-
-
-
-
-
-
-
-
使用
collections.defaultdict()
方法
使用方括号添加字典项
Python 中的方括号 []
用于通过索引或切片操作访问序列(如列表和字符串)中的元素。另外,在处理字典时,方括号用于指定键以访问或修改相关的值。
可以通过指定方括号内的键并向其分配一个值来向字典添加项。如果该键已经在字典对象中存在,其值将被更新为 val
;如果该键不在字典中,则会添加一个新的键值对。
示例
在这个示例中,我们创建了一个名为 marks
的字典,键代表名字,值为对应的整数成绩。然后,我们使用方括号表示法将一个新的键值对 'Kavya': 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()
方法将多个新的键值对 '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}
使用解包添加字典项
Python 中的解包指的是从集合(如列表、元组或字典)中提取个别元素,并在一个单一的语句中将它们分配给变量。这可以使用 *
运算符对于像列表和元组这样的可迭代对象,以及使用 **
运算符对于字典来完成。
我们可以通过组合两个或更多的字典与 **
解包运算符来添加字典项。
示例
在下面的示例中,我们初始化了两个名为 marks
和 marks1
的字典,两者都包含名字及其对应的整数值。然后,我们使用字典解包创建一个新的字典 newmarks
来合并 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}
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}
使用 Union
操作符 (|
) 添加字典项
Python 中的 Union
操作符,由 |
符号表示,用于将两个集合的元素合并成一个新的包含来自两个集合的所有唯一元素的集合。从 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()
将键值对 "major": "Computer Science"
添加到 student
字典中:
student = {"name": "Alice", "age": 21}
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
d = defaultdict(int)
d["a"] += 1
print(d)
d = defaultdict(list)
d["b"].append(1)
print(d)
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