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。