首页 > 解决方案 > Python:有效地组合列表字典

问题描述

我正在寻找一个字典列表,每个字典都有一个键和值列表。我想输出不同的键,以及这些键的不同值。

a1 = {"lang": ["en"], "country": ["US"]}
a2 = {"lang": ["en"], "country": ["UK"]}
a3 = {"lang": ["fr"], "region": ["EU"]}
# many, many more...

full_list = [a1, a2, a3, ...]

output = {}
for f in full_list:
    for k,v in f.items():
        if k not in output:
            output[k] = set()
        output[k].update(set(v))
output = {k:list(v) for k,v in output.items()}

print(output)
>>> {"lang": ["en", "fr"], "country": ["US"], "region": ["EU"], ...}

这可行,但它非常冗长且有点慢。有没有一种快速的pythonic方式来做到这一点?

标签: pythonpython-3.xlist-comprehension

解决方案


推荐阅读