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

如何使用filter()函数筛选列表中的元素

发布时间:2023-12-26 00:32:18

filter()函数是Python内置的用于筛选列表中元素的函数,它对列表中的每个元素应用一个条件,返回符合条件的元素集合。filter()函数的语法如下:

filter(function, iterable)

其中,function是一个用于筛选的函数,它可以是内置函数(例如:len()、str()等)或自定义函数;iterable是一个可迭代的对象,例如列表、元组、字符串等。

下面通过几个使用例子来展示如何使用filter()函数筛选列表中的元素:

例1:筛选出列表中的偶数

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

def is_even(num):
    return num % 2 == 0

even_nums = list(filter(is_even, nums))
print(even_nums)

运行结果:[2, 4, 6, 8, 10]

在这个例子中,我们定义了一个函数is_even(),它接受一个参数num,并判断num是否为偶数。然后,我们使用filter()函数筛选出列表nums中的偶数,最后将筛选结果转换为列表并打印出来。

例2:筛选出字符串列表中长度大于等于5的字符串

words = ['apple', 'banana', 'pear', 'orange', 'strawberry']

def length_greater_than_equal_5(word):
    return len(word) >= 5

long_words = list(filter(length_greater_than_equal_5, words))
print(long_words)

运行结果:['apple', 'banana', 'orange', 'strawberry']

在这个例子中,我们定义了一个函数length_greater_than_equal_5(),它接受一个参数word,并判断word的长度是否大于等于5。然后,我们使用filter()函数筛选出列表words中长度大于等于5的字符串,最后将筛选结果转换为列表并打印出来。

例3:筛选出元组列表中 个元素为偶数的元组

tuples = [(1, 2), (3, 4), (5, 6), (7, 8)]

def first_element_even(t):
    return t[0] % 2 == 0

even_tuples = list(filter(first_element_even, tuples))
print(even_tuples)

运行结果:[(1, 2), (7, 8)]

在这个例子中,我们定义了一个函数first_element_even(),它接受一个参数t,并判断t的 个元素是否为偶数。然后,我们使用filter()函数筛选出元组列表tuples中 个元素为偶数的元组,最后将筛选结果转换为列表并打印出来。

以上就是使用filter()函数筛选列表中元素的几个例子。通过定义一个用于筛选的函数,并将这个函数作为filter()函数的 个参数,我们可以轻松地筛选出列表中符合条件的元素。