合并循环中的列表

时间:2017-02-16 16:09:47

标签: python

我遍历一个字典列表,其中一个特定的映射到列表。

[{..'ccy'=['a','b']....},{...'ccy'=['c','d']....},{....'ccy'=['e']....}].

如何合并与' ccy'相对应的列表?键,循环遍历词典列表?
预期产出:

['a','b','c','d','e']

优选单线解决方案。

2 个答案:

答案 0 :(得分:1)

您可以使用嵌套式理解

lst = [{'ccy':['a','b']},{'ccy':['c','d']},{'ccy':['e']}]

r = [i for d in lst for i in d.get('ccy', [])]
print(r)
# ['a', 'b', 'c', 'd', 'e']

dict.get方法确保在字典没有键'ccy'的情况下返回空列表(由@tobias_k提供)

答案 1 :(得分:0)

你想迭代一堆东西,并“积累”答案吗?

这听起来像是总和, a Python built-in!

的工作
some_dicts = [
        {'ccy':['a','b']},
        {'ccy':['c','d']},
        {'ccy':['e']},
        {'no ccy here!': ['fu']},
    ]

ccy = sum([d.get('ccy',[]) for d in some_dicts], [])
print(ccy)