列表理解

Dict into List Comprehension

这是我的字典和列表

d = {1: ['val1', 'val2'], 2: ['val3', 'val4']}
l = []

for key, value in d.items():
    for sub_value in value:
        l.append(sub_value)

print (l)

# ['val1', 'val2', 'val3', 'val4']


但是,我想用 dict 来实现列表理解。

我有这样的东西,

l = [sub_value for sub_value in value for key,value in d.items()]

也试过了,

l = [(sub_value for sub_value in value) for key,value in d.items()]

然而,这并不是我想要的答案。

谢谢。

使用以下列表理解:

l = [j for i in d for j in d[i]]

>>> d = {1: ['val1', 'val2'], 2: ['val3', 'val4']}
>>> l = [j for i in d for j in d[i]]
>>> l
['val1', 'val2', 'val3', 'val4']
>>> 

您与第一个非常接近;只是错误的顺序:

In [42]: [el for v in d.values() for el in v]
Out[42]: ['val1', 'val2', 'val3', 'val4']

我会第一个承认列表理解有时确实令人困惑:

[sub_value for key,value in d.items() for sub_value in value]

这给出了所需的输出。