def is_even(n): return n % 2 == 0 numbers = [1, 2, 3, 4, 5, 6] even_numbers = filter(is_even, numbers) print(list(even_numbers)) # 输出:[2, 4, 6]
在这个例子中,我们首先定义了一个函数is_even,这个函数接受一个数字并检查它是否是偶数。然后,我们创建了一个列表numbers。接着,我们使用filter函数和is_even函数来从numbers列表中筛选出偶数。最后,我们将filter对象转换为列表并打印结果。
numbers = [1, 2, 3, 4, 5, 6] even_numbers = filter(lambda x: x % 2 == 0, numbers) print(list(even_numbers)) # 输出:[2, 4, 6]在这个例子中,我们直接在filter函数调用中定义了一个匿名函数。这个匿名函数接受一个数字并检查它是否是偶数。这与前面的例子完全相同,但是更加简洁。
data = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}, {'name': 'Charlie', 'age': 35}] old_people = filter(lambda x: x['age'] > 30, data) print(list(old_people)) # 输出:[{'name': 'Charlie', 'age': 35}]在这个例子中,我们首先定义了一个包含字典的列表data,每个字典代表一个人,并含有他们的名字和年龄。然后我们使用filter函数和一个匿名函数来筛选出年龄大于30的人。
numbers = [1, 2, 3, 4, 5, 6] even_numbers = [n for n in numbers if n % 2 == 0] print(even_numbers) # 输出:[2, 4, 6]五、总结