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()函数非常有用,可以将其用于各种序列和数据类型,传入不同的函数筛选出不同的元素,对于数据筛选和处理十分方便。
