"列表列表"到"列表"而不会丢失原始列表列表中的空列表

use*_*403 5 python list-comprehension

通常我会使用理解来将列表列表更改为列表.但是,我不想丢失空列表,因为我将最终列表压缩到另一个列表,我需要维护这些位置.

我有类似的东西

list_of_lists = [['a'],['b'],[],['c'],[],[],['d']] 我用这个

[x for sublist in list_of_lists for x in sublist] 这给了我

['a','b','c','d'] 但我想要的是

['a','b','','c','','','d']

对不起,如果这是一个愚蠢的问题,我是python的新手.

谢谢你的帮助!

Joh*_*ica 5

你开始用字符串'a','b'等等?如果是这样,那么你可以使用''.join转换['a']'a'[]''.

[''.join(l) for l in list_of_lists]
Run Code Online (Sandbox Code Playgroud)


Rob*_*obᵩ 5

['']当显示空子列表时,只需选择而不是空列表:

list_of_lists = [['a'],['b'], [], ['c'], [], [], ['d']]
[x for sublist in list_of_lists for x in sublist or ['']]
Run Code Online (Sandbox Code Playgroud)

如果您有一些更复杂的标准来专门处理某些子列表,您可以使用... if ... else ...:

[x for sublist in list_of_lists for x in (sublist if len(sublist)%2==1 else [42])]
Run Code Online (Sandbox Code Playgroud)

Ps我觉得原版中缺少引号是一种疏忽.