附加具有相同键的另一个字典中的字典值

  • 本文关键字:字典 另一个 python
  • 更新时间 :
  • 英文 :


我有以下两个字典:

flow = {(49, 53): [122.92], (105, 34): [40.26], (47, 92): [85.28], ...} --- len(flow) = 134
dist= {(101, 15): 688, (47, 92): 156, (13, 62): 208, ...} --- len(dist) = 172

flow的所有密钥都包含在dist中(flow密钥是dist密钥的子集(,我基本上想把dist中的所有距离附加到flow的值上,得到如下:

flow_dist = {(49, 53): [122.92, 151], (105, 34): [40.26, 203], (47, 92): [85.28, 156], ...}

到目前为止我所拥有的:

list = [flow, dist]
new_dict = {key: [elem.get(key) for elem in list] for key in set().union(*list)}

输出:flow_dist = {(49, 53): [[122.92], 151], (105, 34): [[40.26], 203], (47, 92): [[85.28], 156], ...}

问题是这些值是[[value1], value2]而不是[value1, value2]

有人能帮忙吗?非常感谢。

这样的东西应该可以工作:

{key: [value] + flow.get(key, []) for key, value in dist.items()}

示例:

In [11]: dist
Out[11]: {(101, 15): 688, (47, 92): 156, (13, 62): 208}
In [12]: flow
Out[12]: {(49, 53): [122.92], (105, 34): [40.26], (47, 92): [85.28]}
In [13]: {key: [value] + flow.get(key, []) for key, value in dist.items()}
Out[13]: {(101, 15): [688], (47, 92): [156, 85.28], (13, 62): [208]}
flow_dist = flow.copy()
for x in flow:
if x in dist:
flow_dist[x].append(dist[x])

最新更新