欢迎访问宙启技术站
智能推送

Python中的filter函数的用法和示例

发布时间:2023-05-20 19:52:29

Python中的filter函数是Python的内置函数之一,用于筛选序列中符合特定条件的元素,并把符合条件的元素组成一个新的序列返回。它的语法格式为:

filter(function, iterable)

其中,function是一个处理每个元素的函数,iterable表示一个序列或迭代器。它返回一个迭代器对象,包含所有使function返回True的元素。可以把它转换为列表或其它数据类型。

下面是几个示例:

1.过滤出列表中的偶数

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
new_lst = list(filter(lambda x: x % 2 == 0, lst))
print(new_lst)  # [2, 4, 6, 8, 10]

在这个例子中,我们定义了一个匿名函数lambda x: x % 2 == 0,它返回True如果x是偶数,我们把这个函数作为filter()的参数,同时传入一个列表,它返回一个迭代器对象,我们把它转换为一个列表。

2.过滤出字符串序列中的元音字母

str = "hello world"
vowels = ['a', 'e', 'i', 'o', 'u']
new_str = list(filter(lambda x: x in vowels, str))
print(new_str)  # ['e', 'o', 'o']

在这个例子中,我们定义了一个列表vowels,它包含元音字母,我们使用lambda函数筛选出字符串序列中所有的元音字母,返回一个迭代器对象,然后转换为列表。

3.过滤出字典序列中值大于10的项

dict = {'a': 5, 'b': 15, 'c': 20, 'd': 25}
new_dict = dict(filter(lambda x: x[1] > 10, dict.items()))
print(new_dict)  # {'b': 15, 'c': 20, 'd': 25}

在这个例子中,我们使用items()方法把字典转换为序列,遍历所有的项,找到值大于10的项,并把它们添加到新的字典中。

总结:

Python中的filter()函数非常有用,可以将其用于各种序列和数据类型,传入不同的函数筛选出不同的元素,对于数据筛选和处理十分方便。