Python的filter()和filterfalse()方法是用于通过函数过滤序列的方法。其中filter()方法返回的是一个仅包含为True的元素的迭代器,而filterfalse()方法则返回的是一个仅包含为False的元素的迭代器。
这些方法的函数参数必须接受一个元素并返回一个布尔值。如果返回值为True,则该元素将包含在输出序列中,否则排除该元素。
下面是关于这两个过滤方法的完整攻略:
filter()函数
语法:filter(function, iterable)
使用示例:
# 过滤出所有奇数
def is_odd(num):
return num % 2 == 1
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
odd_nums = list(filter(is_odd, nums))
print(odd_nums) # [1, 3, 5, 7, 9]
在这个示例中,我们定义了一个is_odd()函数,该函数接受一个数字并返回一个布尔值 True 表示该数字是奇数。然后我们使用 filter() 方法来过滤 nums 列表,该列表中包含 1-9 的整数,过滤出其中所有奇数,并将其包含在 odd_nums 列表中。
filterfalse()函数
语法:filterfalse(function, iterable)
使用示例:
# 过滤出所有偶数
def is_even(num):
return num % 2 == 0
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
even_nums = list(filterfalse(is_even, nums))
print(even_nums) # [1, 3, 5, 7, 9]
在这个示例中,我们定义了一个is_even()函数,该函数接受一个数字并返回一个布尔值 True 表示该数字是偶数。然后我们使用 filterfalse() 方法来过滤 nums 列表,该列表中包含 1-9 的整数,过滤出其中所有偶数,并将其包含在 even_nums 列表中。
总结:
无论是 filter() 方法还是 filterfalse() 方法,都是用于通过函数过滤序列的方法。其中 filter() 方法返回的是一个仅包含为True的元素的迭代器,而 filterfalse() 方法则返回的是一个仅包含为False的元素的迭代器。通过这两个方法,我们可以根据实际情况方便地过滤出序列中符合条件的元素,从而更快速而简便地处理数据。