解压嵌套字典的单个列表理解

sun*_*nny 3 python list-comprehension

我想转这个

a = {'a': {'b': 'b aw', 'c': 'c aw'}, 'b': {'b': 'b2 aw', 'c': 'c2 aw'}, 'c': {}}
Run Code Online (Sandbox Code Playgroud)

进入这个

['b aw', 'c aw', 'b2 aw', 'c2 aw']
Run Code Online (Sandbox Code Playgroud)

具有列表理解能力。我想我需要一些方法来使这个表达“合法”:

a2 = [a1 for a1 in a.values().values()]
Run Code Online (Sandbox Code Playgroud)

我不想要,dict(a.values)因为那只会让我回到我原来的字典,a。我知道有很多方法可以用 for 循环来做到这一点,但是有没有办法在没有 for 循环的情况下做到这一点?谢谢。

Kas*_*mvd 5

您需要遍历 dict 值的值:

>>> [i for j in a.values() for i in j.values()]
['c aw', 'b aw', 'c2 aw', 'b2 aw']
Run Code Online (Sandbox Code Playgroud)