关于python:Dict into List Comprehension

Dict into List Comprehension

本问题已经有最佳答案,请猛点这里访问。

这是我的口述和清单

1
2
3
4
5
6
7
8
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来列出理解。

我有这样的东西,

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

也试过了,

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

然而,我所寻找的答案并不完全正确。

谢谢。


你和第一个很接近,只是顺序不对:

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

我将第一个承认清单理解有时确实令人困惑:

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

这提供了所需的输出。


使用以下列表理解:

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