在python中合并3个dict()
发布时间:2020-12-20 12:29:25 所属栏目:Python 来源:网络整理
导读:如果它们之间有共同的字符串,是否有一种逻辑合并多个字典的方法?即使这些常见字符串在一个dict()的值与另一个的键之间匹配? 我在SO上看到很多类似的问题,但似乎没有解决我将“低级文件”中的多个键与高键/值中的多个键相关联的具体问题(level1dict) 说我们
如果它们之间有共同的字符串,是否有一种逻辑合并多个字典的方法?即使这些常见字符串在一个dict()的值与另一个的键之间匹配?
我在SO上看到很多类似的问题,但似乎没有解决我将“低级文件”中的多个键与高键/值中的多个键相关联的具体问题(level1dict) 说我们有: level1dict = { '1':[1,3],'2':2 } level2dict = { '1':4,'3':[5,9],'2':10 } level3dict = { '1':[6,8,11],'4':12,'2':13,'3':[14,15],'5':16,'9':17,'10':[18,19,20]} finaldict = level1dict 当我逻辑地说我的意思是,在level1dict 1 = 1,3并且在level2dict 1 = 4和3 = 5,9所以整体(到目前为止)1 = 1,3,4,5,9(排序不重要) 我想得到的结果是 #.update or .append or .default? finaldict = {'1':[1,9,6,11,12,14,15,16,17] '2':[2,10,18,20]} 回答:谢谢Ashwini Chaudhary和Abhijit的networkx模块. 解决方法
这是连接组件子图的问题,如果您想使用
networkx,可以最好地确定.这是您的问题的解决方案
>>> import networkx as nx >>> level1dict = { '1':[1,'2':2 } >>> level2dict = { '1':4,'2':10 } >>> level3dict = { '1':[6,20]} >>> G=nx.Graph() >>> for lvl in level: for key,value in lvl.items(): key = int(key) try: for node in value: G.add_edge(key,node) except TypeError: G.add_edge(key,value) >>> for sg in nx.connected_component_subgraphs(G): print sg.nodes() [1,17] [2,13,20] >>> 这是你如何想象它 >>> import matplotlib.pyplot as plt >>> nx.draw(G) >>> plt.show() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |