Python编程语言提供 filter()
函数来过滤给定的数组、列表、字典, 或类似的可移植结构。 filter()
函数可用于通过过滤给定数据的某些元素来创建iterable。
Python过滤器函数语法
filter()
函数具有以下语法。FUNCTION是我们将用来测试给定数据集并创建新的iterable列表的函数名。ITERABLE是我们将用函数和过滤器检查的数据。
filter(FUNCTION, ITERABLE)
筛选器列表
最流行的用法 filter()
函数正在使用Python列表。我们将提供一个列表,该列表将使用给定的函数进行过滤。在本例中,我们将提供名为 numbers
使用 oddF'lter()
用于过滤的函数 numbers
.
#!/bin/python3numbers=[1,2,3,4,5,6,7,8,9]def oddFilter(number): if(number%2==0): return True else: return Falseodd_numbers=filter(oddFilter,numbers)for number in odd_numbers: print(number)

我们将提供名为 numbers
. 此列表包含从1到9的数字。我们将创建一个名为 oddFilter()
它将过滤给定列表中的奇数,如果给定元素为奇数,则返回True;如果给定元素为偶数,则返回False。然后我们将向一个名为 odd_numbers
.
筛选字典
字典也可以用 filter()
功能。我们可以根据每个元素的键或值筛选字典。在这个例子中, 我们将筛选名为 names
.
#!/bin/python3names={1:"ismail",2:"ali",3:"ahmet",4:"elif",5:"ecrin"}filtered_dict = dict(filter(lambda item: item[0]%2==0 , names.items()))for item in filtered_dict.items(): print(item)

筛选字符串列表
我们也可以使用 filter()
函数以筛选给定的字符串列表。在本例中,我们将查找包含 i
信。
#!/bin/python3names=['ismail','ali','ahmet','elif','ecrin']def filterString(name): if 'i' in name: return True else: return Falsefiltered_names=filter(filterString,names)for name in filtered_names: print(name)

使用Lambda进行过滤
当我们不想使用函数时,Lambda非常有用。作为 filter()
函数需要一个函数,我们可以跳过定义一个新函数,像lambda一样使用它 一个函数。我们将过滤那些包含字母的字符串 i
.
#!/bin/python3names=["ismail","ali","ahmet","elif","ecrin"]filtered_names = filter(lambda item: 'i' in item , names)for item in filtered_names: print(item)
相关文章: Python Lambda匿名函数教程及示例