欢迎访问宙启技术站
智能推送

过滤列表中的空值:Python内建函数filter()

发布时间:2023-06-27 06:24:29

Python是一种广泛使用的高级编程语言,它具有简单易学、高效可靠的特点,被广泛应用于数据科学、机器学习、Web开发等领域。在Python中,内建函数filter()是一种非常有用的函数,它可以用来过滤列表中的空值。

在Python中,列表是一种非常常见的数据结构,它可以存储多个元素,并且支持各种操作。有时候我们会遇到列表中存在空值的情况,例如:

lst = [1, 2, 3, None, 5, '', 7, None, 9]

其中,lst列表中存在两个空值,分别是None和''。如果我们想要过滤掉这些空值,可以使用内建函数filter()。filter()函数接受两个参数,第一个参数是一个函数,第二个参数是一个可迭代对象。它会对可迭代对象中的每个元素进行函数操作,如果函数返回True,则保留该元素,否则删除该元素。

我们可以定义一个函数,用来判断元素是否为空值:

def not_empty(s):
    return s and s.strip()

这个函数接受一个参数s,如果s不是空值,则返回s.strip()的结果,否则返回False。有了这个函数,我们就可以使用filter()函数来过滤掉lst中的空值:

lst = [1, 2, 3, None, 5, '', 7, None, 9]
new_lst = list(filter(not_empty, lst))
print(new_lst)

输出结果为:

[1, 2, 3, 5, 7, 9]

可以看到,通过使用filter()函数,我们成功地过滤掉了lst中的空值,得到了一个新的不包含空值的列表。

除了使用自定义函数来进行过滤,我们还可以使用lambda表达式来实现。lambda表达式是一种匿名函数,它可以快速定义简单的函数,非常方便。对于上面的例子,我们可以使用lambda表达式来定义过滤函数:

lst = [1, 2, 3, None, 5, '', 7, None, 9]
new_lst = list(filter(lambda x: x and x.strip(), lst))
print(new_lst)

输出结果与上面的例子相同。

需要注意的是,filter()函数返回的是一个迭代器,如果需要将结果转换成列表,则需要使用list()函数进行转换。

总之,内建函数filter()是Python中非常实用的一个函数,可以用来过滤列表中的元素。我们只需要定义一个判断函数或者lambda表达式即可实现过滤,非常方便。