如何向字典键添加多个值?
- 2025-03-04 08:27:00
- admin 原创
- 70
问题描述:
我想向 Python 字典中的特定键添加多个值。我该怎么做?
a = {}
a["abc"] = 1
a["abc"] = 2
a["abc"]
这将替换from1
到 的值2
。
我想要的是a["abc"]
具有多个值(和1
)2
。
解决方案 1:
将值设为列表,例如
a["abc"] = [1, 2, "bob"]
更新:
有几种方法可以向键添加值,并创建列表(如果尚未存在)。我将分步展示其中一种方法。
key = "somekey"
a.setdefault(key, [])
a[key].append(1)
结果:
>>> a
{'somekey': [1]}
接下来尝试:
key = "somekey"
a.setdefault(key, [])
a[key].append(2)
结果:
>>> a
{'somekey': [1, 2]}
的神奇之处在于,如果该键未定义,setdefault
它将初始化该键的值。现在,注意返回值,您可以将它们合并为一行:setdefault
a.setdefault("somekey", []).append("bob")
结果:
>>> a
{'somekey': [1, 2, 'bob']}
您应该查看这些dict
方法,特别是该get()
方法,并进行一些实验以熟悉它。
解决方案 2:
如何
a["abc"] = [1, 2]
这将导致:
>>> a
{'abc': [1, 2]}
这就是你要找的东西吗?
解决方案 3:
追加列表元素
如果 dict 值需要通过另一个列表进行扩展,则 sextend()
方法list
可能会有用。
a = {}
a.setdefault('abc', []).append(1) # {'abc': [1]}
a.setdefault('abc', []).extend([2, 3]) # a is now {'abc': [1, 2, 3]}
这在循环中尤其有用,因为循环中需要根据数据类型附加或扩展值。
a = {}
some_key = 'abc'
for v in [1, 2, 3, [2, 4]]:
if isinstance(v, list):
a.setdefault(some_key, []).extend(v)
else:
a.setdefault(some_key, []).append(v)
a
# {'abc': [1, 2, 3, 2, 4]}
附加不重复的列表元素
如果有这样的字典,a = {'abc': [1, 2, 3]}
并且需要通过 进行扩展[2, 4]
而不包含重复项,则检查重复项(通过in
运算符)应该可以解决问题。方法的神奇之处在于,如果 中不存在键,get()
则可以设置默认值(在本例中为空集 ( )) ,这样成员资格测试就不会出错。[]
`a`
a = {some_key: [1, 2, 3]}
for v in [2, 4]:
if v not in a.get(some_key, []):
a.setdefault(some_key, []).append(v)
a
# {'abc': [1, 2, 3, 4]}
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD