gpt4 book ai didi

python - 根据列表索引组合字典列表

转载 作者:太空宇宙 更新时间:2023-11-04 09:49:07 26 4
gpt4 key购买 nike

我觉得这个问题之前一定有人问过,但在 Stack Overflow 上找不到。

有没有办法根据列表索引优雅地组合多个字典列表?见下文:

list_1 = [{'hello': 'world'}, {'foo': 'test'}]
list_2 = [{'a': 'b'}, {'c': 'd'}]
result = [{'hello': 'world', 'a': 'b'},
{'foo': 'test', 'c': 'd'}]

我知道我可以在技术上使用 for 循环,例如:

list_3 = []
for i in range(len(list_1)):
list_3.append({**list_1[i],**list_2[i]})

有没有办法通过列表理解来做到这一点?另外,如果我涉及的列表超过 2 个或者不知道字典列表的数量怎么办?

最佳答案

这会做你想做的:

result = [{**x, **y} for x, y in zip(list_1, list_2)]

# [{'a': 'b', 'hello': 'world'}, {'c': 'd', 'foo': 'test'}]

参见 PEP 448 ** 语法的解释。

对于通用解决方案:

list_1=[{'hello':'world'},{'foo':'test'}]
list_2=[{'a':'b'},{'c':'d'}]
list_3=[{'e':'f'},{'g':'h'}]

lists = [list_1, list_2, list_3]

def merge_dicts(*dict_args):
result = {}
for dictionary in dict_args:
result.update(dictionary)
return result

result = [merge_dicts(*i) for i in zip(*lists)]

# [{'a': 'b', 'e': 'f', 'hello': 'world'}, {'c': 'd', 'foo': 'test', 'g': 'h'}]

关于python - 根据列表索引组合字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48573384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com