创建带有两个字典的嵌套字典 - python

我有一个称为多的嵌套列表:

[[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}

python大神给出的解决方案

您可以在此处使用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 sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

Python和字典一样的对象 - python

我需要字典的python 3.1深度更新函数(该函数将递归更新父词典中的子字典)。但是我认为,将来,我的函数可能必须处理行为类似于字典但并非如此的对象。此外,我想避免使用isinstance和type(因为它们被认为是不好的,因为我几乎可以在每个Pythonista的博客上阅读)。但是鸭子的输入是Python的基本原理,那么如何检查对象是否像字典一样?谢谢!…

如何打印浮点数的全精度[Python] - python

我编写了以下函数,其中传递了x,y的值:def check(x, y): print(type(x)) print(type(y)) print(x) print(y) if x == y: print "Yes" 现在当我打电话check(1.00000000000000001, 1.0000000000000002)它正在打印:<…