Python:如何从列表中移除空列表?

2024-10-05 14:32:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个空列表:

list1 = [[], [], [], [], [], 'text', 'text2', [], 'moreText']

如何删除空列表以便获得:

list2 = ['text', 'text2', 'moreText']

我试过列表。删除('')但那不起作用。


Tags: text列表list2list1text2moretext
3条回答

您可以使用filter()而不是列表理解:

list2 = filter(None, list1)

如果将None用作filter()的第一个参数,则它将筛选出给定列表中的每个值,即布尔上下文中的False。这包括空列表。

它可能比列表理解稍微快一点,因为它只在Python中执行一个函数,其余的都在C中完成

试试看

list2 = [x for x in list1 if x != []]

如果你想去掉所有“错误”的东西,例如空字符串、空元组、零,你也可以使用

list2 = [x for x in list1 if x]

None调用filter将从列表(空列表是)中筛选出所有错误的值

list2 = filter(None, list1)

相关问题 更多 >