filter()
是 Python 标准库内置的一个函数,它经常被用来进行过滤操作,可以根据指定的条件选择性地保留或者丢掉一个序列中的元素。该函数的完整语法为:
filter(function, iterable)
其中 function
表示过滤条件(即过滤函数),iterable
表示要过滤的序列,filter()
函数返回一个迭代器,包含了所有符合条件的元素。
下面,我们来演示一下 filter()
函数的使用方法:
筛选出列表中的偶数
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def is_even(num):
return num % 2 == 0
result = filter(is_even, numbers)
print(list(result)) # 输出 [2, 4, 6, 8, 10]
在这个例子中,我们定义了一个 is_even()
函数,它的作用是判断一个数是否为偶数,如果是,就返回 True,否则返回 False。通过 filter()
函数将 is_even()
应用到 numbers
序列上,得到的结果就是一个包含了所有偶数元素的迭代器,最后我们用 list()
函数将其转换为列表并输出。
筛选出字典中年龄小于 25 的人的姓名
people = [{'name': '张三', 'age': 18}, {'name': '李四', 'age': 23},
{'name': '王五', 'age': 26}, {'name': '赵六', 'age': 28}]
def is_young(person):
return person['age'] < 25
result = filter(is_young, people)
names = [p['name'] for p in result]
print(names) # 输出 ['张三', '李四']
在这个例子中,我们定义了一个 is_young()
函数,它的作用是判断一个字典的年龄是否小于 25 岁。通过 filter()
函数将 is_young()
应用到 people
序列中,得到的结果就是一个包含了所有年龄小于 25 岁的元素的迭代器,我们最后再用列表推导式将其中的字典元素的姓名提取出来并输出。
使用 filter()
函数可以帮助我们快速筛选出符合条件的序列中的元素,从而简化了代码的编写。