Python中filter函数的使用方式
发布时间:2023-05-23 05:02:46
Python中的filter函数是一种非常有用的函数,它可以帮助我们过滤列表、元组和字典等集合中的元素。filter函数接受两个参数, 个参数是一个函数,第二个参数是一个集合,通过使用该函数对集合进行筛选,返回一个新的集合,该集合包含着符合条件的元素。
filter函数的语法如下:
filter(function, iterable)
其中,function是用于过滤元素的函数,iterable是需要被过滤的列表、元组、字典或其他可迭代对象。
filter函数返回的是一个迭代器,可以使用list()函数将其转换为列表,方便查看过滤之后的结果。
下面是几种常用的filter函数的使用方式。
1.过滤奇数或偶数
示例代码:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def is_even(n):
return n % 2 == 0
# 过滤出偶数
even_numbers = list(filter(is_even, numbers))
print(even_numbers)
# 过滤出奇数
odd_numbers = list(filter(lambda n: n % 2 != 0, numbers))
print(odd_numbers)
运行结果:
[2, 4, 6, 8, 10] [1, 3, 5, 7, 9]
2.过滤小于某个值的元素
示例代码:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 过滤出小于5的元素 filtered_numbers = list(filter(lambda n: n < 5, numbers)) print(filtered_numbers)
运行结果:
[1, 2, 3, 4]
3.过滤出非空字符串
示例代码:
names = ['Alice', 'Bob', '', 'David', 'Eve'] # 过滤出非空字符串 filtered_names = list(filter(lambda name: len(name) > 0, names)) print(filtered_names)
运行结果:
['Alice', 'Bob', 'David', 'Eve']
4.过滤出包含某个字符的字符串
示例代码:
names = ['Alice', 'Bob', 'David', 'Eve'] # 过滤出包含字母'a'的字符串 filtered_names = list(filter(lambda name: 'a' in name, names)) print(filtered_names)
运行结果:
['Alice', 'David']
5.过滤出长度为偶数的字符串
示例代码:
names = ['Alice', 'Bob', 'David', 'Eve'] # 过滤出长度为偶数的字符串 filtered_names = list(filter(lambda name: len(name) % 2 == 0, names)) print(filtered_names)
运行结果:
['Bob', 'David']
总之,filter函数是一种非常强大的函数,可以用于各种过滤操作。可以根据需要定义不同的过滤函数来实现不同的过滤需求。使用filter函数可以使代码更加简洁、高效。
