进入列表理解

时间:2018-10-17 21:11:39

标签: python python-3.x python-2.7 list-comprehension dictionary-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()]

但是,并不是我一直在寻找的答案。

谢谢。

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

使用以下列表理解:

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']
>>> 

答案 2 :(得分:0)

我将第一个承认列表理解有时会造成混淆:

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

这将提供所需的输出。