filter 函数从指定函数返回 True 的可迭代对象的那些元素构造一个迭代器。它非常适合根据条件筛选掉不需要的项目。摘要:numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Using a for loop to extract even numbers even_numbers = for num in numbers: if num % 2
语法:
filter(function, iterable)假设有一个数字列表,并且只想提取偶数。以下是在 Python 中从列表中提取偶数的四种不同方法。
使用 For 循环简单明了;遍历列表并检查偶数。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Using a for loop to extract even numbers even_numbers = for num in numbers: if num % 2 == 0: even_numbers.append(num) print(even_numbers) # Output: [2, 4, 6, 8, 10]2. 无 For 循环(使用filter\和函数)
使用 filter 将功能分离到定义的函数中
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# Function to check if a number is even def is_even(num): return num % 2 == 0 # Using filter to extract even numbers even_numbers = list(filter(is_even, numbers)) print(even_numbers) # Output: [2, 4, 6, 8, 10]3. 将筛选条件与 Lambda 函数结合使用
下面介绍如何使用 lambda 函数而不是单独的函数来重写代码来检查数字是否为偶数。它使用简洁的内联函数来筛选出偶数。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# Using filter with a lambda function even_numbers = list(filter(lambda num: num % 2 == 0, numbers)) print(even_numbers) # Output: [2, 4, 6, 8, 10]4. 使用 Lambda 函数进行列表推导
注意:尽管在列表推导式中像这样使用 lambda 并不常见,但它演示了如何将 lambda 的功能直接包含在推导式中。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# Using list comprehension with a lambda function even_numbers = [num for num in numbers if (lambda x: x % 2 == 0)(num)] print(even_numbers) # Output: [2, 4, 6, 8, 10]map 和 filter 都可以组合使用,以实现强大的数据处理。例如,如果你先过滤偶数,然后对它们每个求平方,你可以这样做:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] def is_even(num): return num % 2 == 0squared_evens = list(map(lambda x: x**2, filter(is_even, numbers))) print(squared_evens) # Output: [4, 16, 36, 64, 100]来源:自由坦荡的湖泊AI
免责声明:本站系转载,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!