gpt4 book ai didi

python - 创建一个包含两个字典的嵌套字典

转载 作者:行者123 更新时间:2023-12-02 06:19:31 24 4
gpt4 key购买 nike

我有一个名为 multi 的嵌套列表:

[[14, 77766 ,[2, 2]],
[15, 77766, [1, 2]],
[70, 88866, [1, 5]],
[71, 88866,[2, 5]],
[72, 88866, [5, 5]],
[73, 88866, [4, 5]],
[74, 88866, [3, 5]],
[79, 99966, [1, 2]],
[80, 99966, [2, 2]]]

我需要我的输出是:

{77766:  {14:2 ,15:1} , 88866: {70:1, 71:2, 72:5, 73:4, 74:3}, 99966: {79:1, 80:2}}

我编写了生成以下两个字典的代码。我如何将它们组合起来以获得我想要的输出?

a = {77766: [14, 15], 88866: [70, 71, 72, 73, 74], 99966: [79, 80]}
b = {14: 2, 15: 1, 70: 1, 71: 2, 72: 5, 73: 4, 74: 3, 79: 1, 80: 2}

最佳答案

您可以在此处使用defaultdictmulti 不需要排序。

from collections import defaultdict
out=defaultdict(dict)
for v,k,vs in multi:
out[k]={**out[k],**{v:vs[0]}}

输出

defaultdict(dict,
{77766: {14: 2, 15: 1},
88866: {70: 1, 71: 2, 72: 5, 73: 4, 74: 3},
99966: {79: 1, 80: 2}})

编辑:

对内部字典进行排序。

out={k:dict(sorted(v.items(),key=lambda x:x[1])) for k,v in out.items()}

输出:

{77766: {15: 1, 14: 2},
88866: {70: 1, 71: 2, 74: 3, 73: 4, 72: 5},
99966: {79: 1, 80: 2}}

关于python - 创建一个包含两个字典的嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60717796/

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