Python filter()
时间:2020-02-23 14:42:41 来源:igfitidea点击:
Python filter()函数用于基于函数过滤可迭代的元素。
此函数返回作为迭代器的filter
对象。
Python filter()
Python filter()函数语法为:
filter(function, iterable)
函数将在iterable元素上调用,如果返回True,则它们将成为返回的迭代器的一部分。
我们也可以将函数传递为" None",在这种情况下,将遵循标准的真相测试规则来确定可迭代元素是True还是False。
您可以在Python bool示例中获取有关它们的更多详细信息。
Python filter()示例
我们定义一个函数来检查输入数字是否为偶数。
如果数字为偶数,它将返回True,否则返回False。
我们还将定义一个实用程序函数来打印迭代器的元素。
def is_even(x): if x % 2 == 0: return True else: return False def print_filter_items(my_filter): for item in my_filter: print(item, end=' ') print()
让我们使用filter()函数仅从输入的可迭代整数中获取偶数迭代器。
我们将在示例中使用元组和列表,它们都是可迭代的。
l1 = [1, 2, 3, 4, 5] fl = filter(is_even, l1) print(type(fl)) print_filter_items(fl) t = (1, 2, 3, 4, 5) fl = filter(is_even, t) print_filter_items(fl)
输出:
<class 'filter'> 2 4 2 4
具有None函数的Python filter()示例
t = (True, False, 1, 0, 0.0, 0.5, '', 'A', None) fl = filter(None, t) print_filter_items(fl)
输出:
True 1 0.5 A
请注意,零,空字符串,False和None被过滤掉了,因为它们的布尔值是False。