Python 添加字典项
使用运算符
方括号”[]”(用于访问与字典键映射的值)可用于更新现有的键-值对以及添加新的键-值对。
语法
dict["key"] = val
如果键已经存在于字典对象中,则将其值更新为“val”。如果键在字典中不存在,则会添加一个新的键值对。
示例
在此示例中,Laxman的成绩被更新为95。
marks = {"Savita":67, "Imtiaz":88, "Laxman":91, "David":49}
print ("marks dictionary before update: ", marks)
marks['Laxman'] = 95
print ("marks dictionary after update: ", marks)
它将产生以下结果 输出 −
marks dictionary before update: {'Savita': 67, 'Imtiaz': 88, 'Laxman': 91, 'David': 49}
marks dictionary after update: {'Savita': 67, 'Imtiaz': 88, 'Laxman': 95, 'David': 49}
示例
然而,在字典中找不到键名为’Krishnan’的项,因此会添加一个新的键-值对。
marks = {"Savita":67, "Imtiaz":88, "Laxman":91, "David":49}
print ("marks dictionary before update: ", marks)
marks['Krishan'] = 74
print ("marks dictionary after update: ", marks)
它会产生以下 输出 −
marks dictionary before update: {'Savita': 67, 'Imtiaz': 88, 'Laxman': 91, 'David': 49}
marks dictionary after update: {'Savita': 67, 'Imtiaz': 88, 'Laxman': 91, 'David': 49, 'Krishan': 74}
使用update()方法
您可以以三种不同的方式使用dict类中的update()方法:
使用另一个字典进行更新
在这种情况下,update()方法的参数是另一个字典。对于两个字典中共有的键,其值将进行更新。对于新的键值对,则会添加到现有字典中。
语法
d1.update(d2)
返回值
现有字典将会被更新,并添加新的键值对。
示例
marks = {"Savita":67, "Imtiaz":88, "Laxman":91, "David":49}
print ("marks dictionary before update: \n", marks)
marks1 = {"Sharad": 51, "Mushtaq": 61, "Laxman": 89}
marks.update(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}
更新可迭代对象
如果传递给update()方法的参数是一个包含两个元素元组的列表或元组,那么每个元组都会被添加到现有的字典中,如果键已存在则进行更新。
语法
d1.update([(k1, v1), (k2, v2)])
返回值
现有的字典会被添加新的键并更新。
示例
marks = {"Savita":67, "Imtiaz":88, "Laxman":91, "David":49}
print ("marks dictionary before update: \n", marks)
marks1 = [("Sharad", 51), ("Mushtaq", 61), ("Laxman", 89)]
marks.update(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}
使用关键字参数进行更新
update()方法的第三个版本接受以name=value格式表示的关键字参数列表。新的键值对将被添加,或者已有键的值将被更新。
语法
d1.update(k1=v1, k2=v2)
返回值
现有的字典会被更新,新增的键值对将会添加进去。
示例
marks = {"Savita":67, "Imtiaz":88, "Laxman":91, "David":49}
print ("marks dictionary before update: \n", marks)
marks.update(Sharad = 51, Mushtaq = 61, Laxman = 89)
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}
使用解包操作符
在字典对象前加上**
符号,它会将其解包成一个包含键值对的元组列表。两个 dict 对象被解包和合并,得到一个新的字典。
语法
d3 = {**d1, **d2}
返回值
将两个字典合并并返回一个新的对象。
示例
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引入了|
(管道符号)作为字典操作数的联合运算符。它会更新左边的字典对象中的现有键,并添加新的键值对,以返回一个新的字典对象。
语法
d3 = d1 | d2
返回值
Union运算符在合并两个字典操作数后返回一个新的字典对象。
示例
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}
使用|=
运算符
|=
运算符是一个增强的合并运算符。它通过在左操作数的字典上添加右操作数中的新键,并更新现有键来进行原地更新。
语法
d1 |= d2
示例
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}