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

Python中如何使用filter函数进行列表筛选操作?

发布时间:2023-05-27 10:48:31

Python中的filter()函数用来筛选一个序列,它的作用是从一个序列中取出符合特定条件的元素,返回一个新的序列。filter()函数的使用非常简单,只需要提供一个函数和一个序列即可。

语法格式:

filter(function, sequence)

函数参数:

function:用来筛选序列的函数,可以是自定义函数或Python内置函数。

sequence:需要筛选的序列。可以是列表、元组、字符串。

返回值:

filter()函数返回一个新的序列,该序列中的元素都是从原序列中筛选出的符合条件的元素。

代码实现:

# 定义一个筛选函数
def is_even(x):
    if x % 2 == 0:
        return True
    else:
        return False

# 定义一个列表
lst = [1,2,3,4,5,6,7,8,9]

# 使用filter函数筛选偶数
new_lst = filter(is_even, lst)
print(list(new_lst))

输出结果:

[2, 4, 6, 8]

上面的例子中,我们定义了一个筛选函数is_even(),它的作用是判断一个数是否为偶数,如果是就返回True,否则返回False。

然后我们定义了一个列表lst,它包含了1~9的所有数字。

接下来我们使用filter()函数来筛选出列表中的偶数,将筛选结果保存在new_lst中。

最后我们使用print()函数输出new_lst的值,结果是[2, 4, 6, 8],表明filter()函数已经成功地筛选出了原列表中的偶数。

在filter()函数中,我们还可以使用lambda函数来快速定义筛选条件。lambda函数可以用来快速定义简单的匿名函数,它的语法格式如下:

lambda arguments: expression

其中,arguments表示函数的形参,expression表示函数的返回值。

代码实现:

# 使用lambda函数筛选偶数
new_lst = filter(lambda x: x % 2 == 0, lst)
print(list(new_lst))

输出结果:

[2, 4, 6, 8]

上面的代码中,我们使用lambda函数来定义筛选条件,它表示只留下x是偶数的元素。

最后我们将筛选结果保存在new_lst中,使用print()函数输出new_lst的值,结果仍然是[2, 4, 6, 8]。

总结:

Python中的filter()函数是一个非常实用的工具,它可以帮助我们快速地筛选出符合特定条件的元素,可以极大地简化我们的程序编写工作。在使用filter()函数时,我们可以使用自定义函数或lambda函数来定义筛选条件,具体使用哪种方式,取决于个人习惯和编程需要。