在Python3中,我有一个问题,要找到将这三个列表合并为一个列表的方法。
list1 = [{'a': '1'}, {'a': '2'}, {'a': '3'}]
list2 = [{'b': '4'}, {'b': '5'}, {'b': '6'}]
list3 = [{'c': '7'}, {'c': '8'}, {'c': '9'}]
我想做的是得到一份新的清单,例如:
list4 = [{'a': '1', 'b': '4', 'c': '7'}, {'a': '2', 'b': '5', 'c': '8'}, {'a': '3', 'b': '6', 'c': '9'}]
有什么毕达通的方法来做这个手术吗?
发布于 2019-11-21 10:00:39
在一个组合列表中使用zip
>>> list1 = [{'a': '1'}, {'a': '2'}, {'a': '3'}]
>>> list2 = [{'b': '4'}, {'b': '5'}, {'b': '6'}]
>>> list3 = [{'c': '7'}, {'c': '8'}, {'c': '9'}]
>>> [{k: d[k] for d in ds for k in d} for ds in zip(list1, list2, list3)]
[{'a': '1', 'b': '4', 'c': '7'},
{'a': '2', 'b': '5', 'c': '8'},
{'a': '3', 'b': '6', 'c': '9'}]
如果dicts包含多个值,也可以工作。如果一个“列”中的dicts包含相同的键,则后面列表中的值将覆盖前者。
https://stackoverflow.com/questions/58972043
复制相似问题