gpt4 book ai didi

python - 在 Python 中将值附加到字典

转载 作者:太空宇宙 更新时间:2023-11-04 06:57:16 26 4
gpt4 key购买 nike

我正在寻找使用字典处理某些数据输出的最聪明的方法。我有一个唯一键,它将与其他值相关联,例如我们有 1:[2, 3, 4, 7], 2:[8, 9, 5]。我想要做的是能够附加值,这样对于第一个键我可以添加数字 13 并获得以下内容:

1:[2, 3, 4, 7, 13], 2:[8, 9, 5]

Append 似乎不是执行此操作的最明智的方法。我正在使用:

dict[master = dict[master].append(id)

但我得到以下信息:

AttributeError: 'int' 对象没有属性 'append'

现在我可以简单地获取它们键的先前值并简单地执行以下操作 (id = 17):

newvalue = values, id

但这会导致额外的括号,例如

1:[[2, 3, 4, 7, 13], 17] 

确保我只得到一组括号中的数字的最聪明的方法是什么,即

1:[2, 3, 4, 7, 13, 17] 

我可以使用一些剥离功能 - 但有没有一种简单易行的好方法来做到这一点。我可能在这里忽略了一些简单的事情。提前致谢。

最佳答案

使用 collections.defaultdict(而且,wottthehell,让每个条目成为 collections.deque 只是为了好玩;您也可以使用普通的旧 list当然)。

from collections import defaultdict, deque

d = defaultdict(deque) # or ...(list)

d[1].append(2)
d[1].extend([3, 4, 7, 13])

这里的基本思想是你的字典值总是 deque并且你总是附加到它们,所以你永远不必担心关于一个值是否是 int。如果你使用字典中不存在的键,defaultdict 会自动为你创建一个新的deque,所以你永远不必检查键是否已经存在于字典中字典。

如果您已经有一个包含单个 int 值的常规字典——假设它是您调用的某个函数的返回值——您可以只使用该字典来构建您的新字典,之前无论你用它做什么,都可以使用它。

d = defaultdict(deque)
for key, value in old_d.iteritems():
d[key].append(value)

关于python - 在 Python 中将值附加到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8897099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com