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