📜  从列表python中删除所有0(1)

📅  最后修改于: 2023-12-03 15:21:55.942000             🧑  作者: Mango

从列表中删除所有0

在Python编程中,我们有时需要从列表中删除所有的0元素,以便更好地处理数据。下面是如何从一个Python列表中删除所有0的方法。

方法一:使用列表推导式

列表推导式是Python的标准语法之一,它可以快速创建一个新的列表或过滤一个现有的列表。使用列表推导式可以轻松地从列表中删除所有的0元素。

old_list = [1, 0, 2, 0, 3, 0, 4, 0, 5]
new_list = [x for x in old_list if x != 0]

这里,我们首先创建一个旧的列表old_list,它包含了一些0元素。然后,使用列表推导式创建一个新的列表new_list。

新列表中的每个元素都是从旧列表中选择的,但使用了if语句来过滤所有值为0的元素。因此,新列表中将不包含任何0。

方法二:使用filter函数

Python中的内置函数'filter()'用于筛选序列,它可以接受一个函数和一个序列作为参数,并返回一个根据函数测试其返回值为True或False确定的新列表。

old_list = [1, 0, 2, 0, 3, 0, 4, 0, 5]
new_list = list(filter(lambda x: x != 0, old_list))

这里,我们首先创建一个旧列表old_list,包含一些0元素。然后,使用filter()函数和lambda函数(匿名函数)来创建一个新的列表new_list。

lambda函数的参数是old_list中的每个元素,返回True或False,这取决于该元素是否为0。filter()函数使用lambda函数来筛选出所有值为True的元素,添加到新列表中。

示例

以下代码示例演示了使用这两种方法来删除所有0元素的列表。

#方法1
old_list = [1, 0, 2, 0, 3, 0, 4, 0, 5]
new_list = [x for x in old_list if x != 0]
print(new_list)

#方法2
old_list = [1, 0, 2, 0, 3, 0, 4, 0, 5]
new_list = list(filter(lambda x: x != 0, old_list))
print(new_list)

输出:

[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]

以上两种方法都可以轻松地从Python列表中删除所有0元素。具体选择哪种方法取决于个人习惯和场景需求。