gpt4 book ai didi

python - 从具有重复键的 2 个列表创建字典

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

虽然我已经看到我的问题的版本,其中一个字典是从两个列表(一个列表带有键,另一个列表带有相应的值)创建的,但我想从一个列表(包含键)创建一个字典,和“列表列表”(包含相应的值)。

我的代码示例是:

#-Creating python dictionary from a list and lists of lists:
keys = [18, 34, 30, 30, 18]
values = [[7,8,9],[4,5,6],[1,2,3],[10,11,12],[13,14,15]]
print "This is example dictionary: "
print dictionary

我期望得到的结果是:

{18:[7,8,9],34:[4,5,6],30:[1,2,3],30:[10,11,12],18:[13,14,15]}

我不需要将重复的键 (30, 18) 与其各自的值配对。

相反,我不断得到以下结果:

{18: [13, 14, 15], 34: [4, 5, 6], 30: [10, 11, 12]}

此结果缺少预期列表中的两个元素。

我希望能从这个论坛得到一些帮助。

最佳答案

如前所述,您想要的输出是不可能的,因为字典键必须是唯一的。

如果您不想丢失数据,以下是 2 个备选方案。

元组列表

res = [(i, j) for i, j in zip(keys, values)]

# [(18, [7, 8, 9]),
# (34, [4, 5, 6]),
# (30, [1, 2, 3]),
# (30, [10, 11, 12]),
# (18, [13, 14, 15])]

列表字典

from collections import defaultdict

res = defaultdict(list)

for i, j in zip(keys, values):
res[i].append(j)

# defaultdict(list,
# {18: [[7, 8, 9], [13, 14, 15]],
# 30: [[1, 2, 3], [10, 11, 12]],
# 34: [[4, 5, 6]]})

关于python - 从具有重复键的 2 个列表创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49268016/

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