我有以下两本词典:
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
键的子集),我基本上想将所有距离附加在 { {1}} 到 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]
。
有人可以帮忙吗?欣赏一下。
答案 0 :(得分:4)
这样的事情应该可以工作:
{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]}
答案 1 :(得分:1)
flow_dist = flow.copy()
for x in flow:
if x in dist:
flow_dist[x].append(dist[x])