2024-10-05 14:32:15 发布
网友
我有一个空列表:
list1 = [[], [], [], [], [], 'text', 'text2', [], 'moreText']
如何删除空列表以便获得:
list2 = ['text', 'text2', 'moreText']
我试过列表。删除('')但那不起作用。
您可以使用filter()而不是列表理解:
filter()
list2 = filter(None, list1)
如果将None用作filter()的第一个参数,则它将筛选出给定列表中的每个值,即布尔上下文中的False。这包括空列表。
None
False
它可能比列表理解稍微快一点,因为它只在Python中执行一个函数,其余的都在C中完成
试试看
list2 = [x for x in list1 if x != []]
如果你想去掉所有“错误”的东西,例如空字符串、空元组、零,你也可以使用
list2 = [x for x in list1 if x]
用None调用filter将从列表(空列表是)中筛选出所有错误的值
filter
您可以使用
filter()
而不是列表理解:如果将
None
用作filter()
的第一个参数,则它将筛选出给定列表中的每个值,即布尔上下文中的False
。这包括空列表。它可能比列表理解稍微快一点,因为它只在Python中执行一个函数,其余的都在C中完成
试试看
如果你想去掉所有“错误”的东西,例如空字符串、空元组、零,你也可以使用
用
None
调用filter
将从列表(空列表是)中筛选出所有错误的值相关问题 更多 >
编程相关推荐