def _not_divisible(n): return lambda x: x % n > 0
时间: 2024-04-30 17:19:20 浏览: 42
这是一个 Python 函数,它返回一个 lambda 函数。这个 lambda 函数接受一个参数 x,并检查 x 是否不能被参数 n 整除,如果不能整除则返回 True,否则返回 False。该函数通常用于筛选质数。例如,可以使用该函数和 filter() 函数来筛选出 2 到 100 中的所有质数:
```
primes = []
for i in range(2, 101):
if i not in primes:
primes.append(i)
primes += list(filter(_not_divisible(i), range(i*i, 101, i)))
print(primes)
```
这个代码会输出 2 到 100 中的所有质数。
相关问题
def _not_divisible(n): return lambda x: x % n > 0
这是一个 Python 的 lambda 函数,用于判断一个数是否能被 n 整除。它返回一个函数对象,这个函数输入一个参数 x,判断 x 是否能被 n 整除,如果不能整除则返回 True,否则返回 False。这个 lambda 函数可以用于筛选质数,例如:
```python
def primes(n):
primes_list = []
sieve = [True] * n
for p in range(2, n):
if sieve[p]:
primes_list.append(p)
for multiple in range(p*p, n, p):
sieve[multiple] = False
return primes_list
primes_list = primes(20)
print(primes_list) # [2, 3, 5, 7, 11, 13, 17, 19]
primes_list = filter(_not_divisible(2), range(2, 20))
print(list(primes_list)) # [3, 5, 7, 11, 13, 17, 19]
```
在上面的代码中,我们先生成了小于 20 的质数列表 primes_list,然后使用 filter 函数和 _not_divisible(2) 函数筛选出大于等于 2 小于 20 的质数列表。
def _not_divisible(n): return lambda x: x % n > 0 这个函数中的x是哪来的?
这个函数 `_not_divisible(n)` 返回一个 lambda 函数,这个 lambda 函数接受一个参数 `x`,并且会判断 `x` 是否能被 `n` 整除。如果 `x` 不能被 `n` 整除,那么返回值是 True,否则返回值是 False。这个 lambda 函数中的 `x` 是在调用 `_not_divisible(n)` 返回的 lambda 函数时传入的参数。例如,如果我们定义了 `func = _not_divisible(3)`,那么调用 `func(4)` 时,`x` 的值是 4。
阅读全文