在Python中向字典添加元素和加入字典。

您所在的位置:网站首页 python字典添加列表值 在Python中向字典添加元素和加入字典。

在Python中向字典添加元素和加入字典。

2023-07-24 00:54| 来源: 网络整理| 查看: 265

本节解释了如何在 Python 中向字典 (dict 类型的对象) 添加新元素或更新现有元素的值。也可以连接(加入、合并)多个字典。

通过指定键来添加和更新元素到字典中。多个字典的连接(合并):update(),| operator,|= operator。添加或更新多个元素:update(),|= 操作员。通过指定键来添加和更新元素到字典中。连接(合并)多个字典: update(), | operator, |= operator。更新()| 运算符,|= 运算符 (Python 3.9 及以后版本)添加或更新多个元素:update(), |= 操作员。更新()|= 操作符 (Python 3.9 及以后版本)通过指定键来添加和更新元素到字典中。

你可以通过以下方式添加/update字典元素。

字典对象[key]=值

当指定一个不存在的键时,会增加一个新元素,当指定一个现有的键时,会更新(覆盖)现有的值。

d = {'k1': 1, 'k2': 2} d['k3'] = 3 print(d) # {'k1': 1, 'k2': 2, 'k3': 3} d['k1'] = 100 print(d) # {'k1': 100, 'k2': 2, 'k3': 3}

如果不想更新存在的键的值,可以使用setdefault()方法。

连接(合并)多个字典: update(), | operator, |= operator。更新()

如果指定另一个 dictionary 对象作为 dictionary 对象的方法 update() 的参数,那么它的所有元素将被添加。

如果键与现有的键重合,它将被参数中指定的字典值覆盖。

d1 = {'k1': 1, 'k2': 2} d2 = {'k1': 100, 'k3': 3, 'k4': 4} d1.update(d2) print(d1) # {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

在 update() 参数中指定多个字典是错误的。

d1 = {'k1': 1, 'k2': 2} d2 = {'k3': 3, 'k4': 4} d3 = {'k5': 5, 'k6': 6} # d1.update(d2, d3) # TypeError: update expected at most 1 arguments, got 2

后面解释过,update()可以将新的元素作为关键字参数(key=value)添加,所以只要将**添加到字典中,并将每个元素作为关键字参数展开,然后传递给它。

d1.update(**d2, **d3) print(d1) # {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}

和前面的例子一样,使用update()将更新原来的字典对象。

如果你想通过合并多个字典来生成一个新的字典,请使用{**d1, **d2}。(从 Python 3.5 开始) 或 dict(**d1, **d2)。

在 Python 3.9 和更高版本中,也可以使用下面描述的| 操作符来创建新的字典。

| 运算符,|= 运算符 (Python 3.9 及以后版本)

从 Python 3.9 开始,可以使用 | 操作符来合并两个字典。当两个字典的键相同时,右边的值具有优先权。

d1 = {'k1': 1, 'k2': 2} d2 = {'k1': 100, 'k3': 3, 'k4': 4} print(d1 | d2) # {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4} print(d2 | d1) # {'k1': 1, 'k3': 3, 'k4': 4, 'k2': 2}

|也可以通过一系列的运算符来组合多个词典。

d1 = {'k1': 1, 'k2': 2} d2 = {'k3': 3, 'k4': 4} d3 = {'k5': 5, 'k6': 6} print(d1 | d2 | d3) # {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}

+和update()一样,左边的对象被更新。

d1 = {'k1': 1, 'k2': 2} d2 = {'k1': 100, 'k3': 3, 'k4': 4} d1 |= d2 print(d1) # {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4} 添加或更新多个元素:update(), |= 操作员。更新()

当在update()方法中指定关键字参数key=value时,将添加key键和value值。如果键值与现有的键值重合,则会被参数中指定的值覆盖。

d = {'k1': 1, 'k2': 2} d.update(k1=100, k3=3, k4=4) print(d) # {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

也可以指定一个(key,value)的列表作为 update()方法的参数。如果键与现有的键重合,它将被作为参数指定的值覆盖。

d = {'k1': 1, 'k2': 2} d.update([('k1', 100), ('k3', 3), ('k4', 4)]) print(d) # {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

结合zip()函数,可以从键的列表和值的列表中添加元素。

d = {'k1': 1, 'k2': 2} keys = ['k1', 'k3', 'k4'] values = [100, 3, 4] d.update(zip(keys, values)) print(d) # {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4} |= 操作符 (Python 3.9 及以后版本)

使用|=操作符,可以在右侧指定一个(键,值)的列表。

d = {'k1': 1, 'k2': 2} d |= [('k1', 100), ('k3', 3), ('k4', 4)] print(d) # {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

请注意,用|操作符指定一个列表会导致错误。只支持字典到字典的操作。

# print(d | [('k1', 100), ('k3', 3), ('k4', 4)]) # TypeError: unsupported operand type(s) for |: 'dict' and 'list'


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3