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

如何在Python中使用filter函数进行列表元素筛选?

发布时间:2023-06-05 08:11:11

Python中有许多内置的函数,其中包括filter()函数。filter()函数是Python内置函数中用来过滤列表元素的函数之一。通过filter()函数的使用,我们可以在不改变原始列表的情况下,对其进行条件筛选,返回符合条件的元素组成的新列表。

filter()函数有两个参数, 个参数是筛选条件,第二个参数是被筛选的可迭代对象。其中筛选条件是一个函数,可以由用户自定义,也可以使用Python内置函数。被筛选的可迭代对象可以是任意列表、元组、字典等。

下面,我们就来详细介绍一下在Python中如何使用filter()函数进行列表元素筛选。

1. 使用内置函数进行筛选

使用内置函数进行筛选,可以直接传入Python内置的判断函数。例如要筛选一个列表中大于等于5的元素,可以这样写:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new_lst = list(filter(lambda x:x>=5, lst))
print(new_lst)

运行结果:

[5, 6, 7, 8, 9, 10]

这里我们使用了Python内置函数lambda,lambda函数是一个匿名函数。表示传入一个参数x,然后返回x>=5的值。这样,就得到了大于等于5的元素组成的新列表new_lst。

2. 使用自定义函数进行筛选

使用自定义函数进行筛选,需要先定义一个函数,然后将其作为筛选条件传入filter()函数中。例如,我们要筛选一个列表中长度大于等于5的字符串元素,可以这样写:

lst = ['hello', 'world', 'python', 'filter', 'map', 'reduce']
def longer_than_five(str):
    return len(str) >= 5
new_lst = list(filter(longer_than_five, lst))
print(new_lst)

运行结果:

['hello', 'world', 'python', 'filter', 'reduce']

这里我们先定义了一个函数longer_than_five(str),表示如果字符串str的长度大于等于5,则返回True,否则返回False。然后将这个函数作为筛选条件传入filter()函数中,得到了长度大于等于5的字符串元素组成的新列表new_lst。

3. 使用Lambda函数进行筛选

Lambda函数可以让我们在一行内快速创建一个简单的函数,特别适合于一些只使用一次的小函数。可以在需要的时候,使用Lambda函数作为filter()函数的筛选条件。例如,要筛选一个列表中是偶数的元素,可以这样写:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new_lst = list(filter(lambda x: x%2 == 0, lst))
print(new_lst)

运行结果:

[2, 4, 6, 8, 10]

这里我们使用Lambda函数,表示传入一个参数x,然后返回x%2==0的值。这样,就得到了偶数元素组成的新列表new_lst。

总结:filter()函数是Python内置函数中用来过滤列表元素的函数之一,通过filter()函数的使用,我们可以在不改变原始列表的情况下,对其进行条件筛选,返回符合条件的元素组成的新列表。在使用filter()函数时,可以使用Python内置的判断函数或自定义函数作为筛选条件,也可以使用Lambda函数在一行内创建简单的函数。