Python filter()函数
在Python中,filter()函数用于过滤序列的元素,返回一个由符合条件的元素组成的新列表。filter()接受一个函数和一个序列作为参数,将序列中每个元素传递给函数进行判断,最终返回符合条件的元素组成的新列表。
语法
filter(function, iterable)
- function: 用于筛选元素的函数,返回值为True或False。
- iterable: 需要过滤的可迭代对象。
示例
筛选出正数
下面这个示例演示了如何使用filter()函数筛选出一个列表中的正数。
def is_positive(x):
return x > 0
numbers = [-2, 3, 5, -1, 0, 9]
positive_numbers = list(filter(is_positive, numbers))
print(positive_numbers)
运行结果:
[3, 5, 9]
筛选出偶数
下面这个示例演示了如何使用lambda表达式和filter()函数筛选出一个列表中的偶数。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)
运行结果:
[2, 4, 6, 8, 10]
去除空字符串
下面这个示例演示了如何使用filter()函数去除一个字符串列表中的空字符串。
def not_empty(s):
return s and s.strip()
strings = ['hello', '', 'world', ' ', 'python', '']
non_empty_strings = list(filter(not_empty, strings))
print(non_empty_strings)
运行结果:
['hello', 'world', 'python']
筛选出长度大于等于5的字符串
下面这个示例演示了如何使用filter()函数筛选出一个字符串列表中长度大于等于5的字符串。
strings = ['apple', 'banana', 'carrot', 'kiwi', 'pear']
long_strings = list(filter(lambda s: len(s) >= 5, strings))
print(long_strings)
运行结果:
['apple', 'banana', 'carrot']
总结
通过本文的介绍和示例,你应该已经了解了Python中filter()函数的用法和基本语法。filter()函数是一个很有用的工具,能够帮助我们轻松地筛选出符合条件的元素,让代码更加简洁和优雅。