python实现filter筛选非素数
时间: 2023-06-10 20:09:08 浏览: 117
Python如何用filter函数筛选数据
可以使用Python内置的filter函数和一个判断是否为素数的函数来实现。
首先,定义一个函数判断是否为素数:
```python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
```
然后,使用filter函数筛选非素数:
```python
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
non_primes = list(filter(lambda x: not is_prime(x), lst))
print(non_primes) # [1, 4, 6, 8, 9, 10]
```
这里使用lambda表达式作为filter的第一个参数,表示筛选出来的元素必须满足lambda表达式的条件,即非素数。
阅读全文