Python的filter()函数是如何工作的
发布时间:2023-06-23 05:44:09
Python中的filter()函数是一个内置函数,用于根据给定的函数(称为筛子函数)过滤序列中的元素。filter()函数的语法如下:
filter(function, iterable)
其中,function是筛选条件的函数,iterable是要筛选的序列。函数将应用于序列中的每个元素,如果该函数返回True,则该元素将包含在返回的迭代器中;否则被过滤掉。
以下是一个示例,使用filter()函数过滤出列表中的偶数:
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result = filter(lambda x: x % 2 == 0, nums) print(list(result))
结果为:[2, 4, 6, 8, 10]
在这个例子中,lambda函数定义了一个过滤条件:只有当x是偶数时才返回True。然后,它被传递给filter()函数,作为筛选器函数。nums是要筛选的列表,所以它成为可迭代的序列。result是一个迭代器,它包含列表中所有符合条件的偶数。
当filter()函数被调用时,它会依次检查序列中的每个元素。它调用筛选器函数,并把当前元素作为参数传递给它。如果筛选器函数返回True,filter()函数就会将该元素添加到返回的迭代器中。
在上面的示例中,filter()函数检查了列表中的每个数字。对于每个数字,它调用lambda函数,并将该数字作为输入。如果数字是偶数,则lambda函数返回True。只有偶数才传递给迭代器,其余的都被过滤掉。
总结:filter()函数根据给定的筛选器函数过滤列表中的元素。它返回一个包含所有符合条件的元素的迭代器。对于每个元素,筛选器函数只会被调用一次。如果筛选器函数返回True,则该元素将包含在返回的迭代器中;否则就抛弃。
