gpt4 book ai didi

python - 附加到字典值,pythonesque解决方案

转载 作者:行者123 更新时间:2023-11-28 20:45:49 25 4
gpt4 key购买 nike

通常,T 在 python 中形成一个字典,其键是动态插入的,值是某种列表:

dc = {'foo': [1,2,3], 'bar': [2,3,4]}

但是,生成这样一个字典对我来说是有问题的。例如,假设我正在浏览这个列表:

l = [('foo', 1),('foo', 2),('foo', 3), ('bar', 2), ('bar', 3), ('bar', 4)]

我希望我的程序从上面生成 dc 字典。现在,我唯一的代码是这样的:

dc = {}
for key, value in l:
if dc.has_key(key):
dc[key].append(value)
else:
dc[key] = value

是否有更像 python 的方式来做到这一点?这里有很多代码真的可以压缩成一行,而不是笨重和/或缓慢......

编辑 上面的列表l 只是为了说明。事实上,我经常浏览一个大文件并在文件的每一行中找到一个键值对,因此调用 dict(l) 不是一个选项。

最佳答案

from collections import defaultdict
dc = defaultdict(list)
for key, value in l:
dc[key].append(value)
print dc
# defaultdict(<type 'list'>, {'foo': [1, 2, 3], 'bar': [2, 3, 4]})

您可以像使用普通词典一样使用它。但是如果你想把它转换成字典,那么你就这样做

print dict(dc)
# {'foo': [1, 2, 3], 'bar': [2, 3, 4]}

关于python - 附加到字典值,pythonesque解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22408951/

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