从一个键值匹配的字典列表中获取常用字典列表

时间:2019-12-06 15:12:23

标签: python python-2.7 sorting merge

我正在尝试根据键“主机”的值在列表中合并字典列表。相同的示例输入如下:

Border

我正在尝试获得这样的输出

first = [{'host': '1', 'a': 'a', 'b': 'b'}, {'host': '2', 'a': 'c', 'd': 'd'}, {'host': '3', 'a': 'd', 'd': 'd'}]

second = [{'host': '1', 'a': 'w', 'b': 'e'}, {'host': '2', 'a': 'q', 'd': 's'}, {'host': '3', 'a': 'q', 'd': 'c'}]

third= [{'host': '1', 'a': 'r', 'b': 't'}, {'host': '2', 'a': 'f', 'd': 'b'}, {'host': '3', 'a': 'k', 'd': 'p'}]

2 个答案:

答案 0 :(得分:2)

您要成对压缩它们,然后使用枚举注释从1开始的成对。

final_list = {str(num): [a, b, c] for num, (a, b, c) in 
              enumerate(zip(first, second, third), start = 1)}

>>> final_list

{'1': [{'a': 'a', 'b': 'b', 'host': '1'},
       {'a': 'w', 'b': 'e', 'host': '1'},
       {'a': 'r', 'b': 't', 'host': '1'}],
 '2': [{'a': 'c', 'd': 'd', 'host': '2'},
       {'a': 'q', 'd': 's', 'host': '2'},
       {'a': 'f', 'd': 'b', 'host': '2'}],
 '3': [{'a': 'd', 'd': 'd', 'host': '3'},
       {'a': 'q', 'd': 'c', 'host': '3'},
       {'a': 'k', 'd': 'p', 'host': '3'}]}

答案 1 :(得分:0)

我收集了您的列表以简化使用,您可以这样做:

node