gpt4 book ai didi

Python 列表到字典 - 没有值覆盖

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

Keys = [1,2,3]
Values = [["a",1],["b",2],["c",3],["d",1]]

Dictionary = dict.fromkeys(Keys)

for d in Dictionary:
for value in Values:
if value[1] == d:
# Add to dictionary
Dictionary.update({d:value})
# else
# Do Nothing

print(Dictionary)

当我运行这段代码时,它工作正常,直到我仔细观察它的输出。我注意到,因为我想向“键”1 添加两个“值”,它会覆盖添加的第一个并保留最后一个,这是输出:

{1: ['d', 1], 2: ['b', 2], 3: ['c', 3]}

我希望键 1 的值同时为 ['a',1]['d',1]

最佳答案

使用 defaultdict对象。

# -*- coding: utf-8 -*-
from collections import defaultdict

values = [["a", 1], ["b", 2], ["c", 3], ["d", 1]]
d = defaultdict(list)
for x, y in values:
d[y].append([x, y])

然后您可以像访问常规字典对象一样访问键和值。

for k, v in d.iteritems():
print "{} {}".format(k,v)

哪些输出

1 [['a', 1], ['d', 1]]
2 [['b', 2]]
3 [['c', 3]]

关于Python 列表到字典 - 没有值覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28819566/

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