展平对象字典

时间:2018-08-02 22:11:39

标签: arrays python-3.x dictionary

我有一本看起来像这样的字典:

foo = {'a': [{'11': 'coucou'}, {'22': 'test'}], 'b': [{'33': 'plop'}, {'44': 'last'}]}

我想删除第一级来获得这个:

[{'11': 'coucou'}, {'22': 'test'}, {'33': 'plop'}, {'44': 'last'}]

我尝试了这个但没有成功:

bar = {k
       for d in foo.values()
       for k in d}

错误:TypeError: unhashable type: 'dict'

我知道我的第二次迭代失败了,但是我现在不知道为什么以及如何解决它。

1 个答案:

答案 0 :(得分:2)

请注意,示例输出是一个列表,而理解力是一个集合。试试

bar = [k
       for d in foo.values()
       for k in d]

以获取列表。你也可以做

from itertools import chain

bar = list(chain.from_iterable(foo.values()))