如何使用 python 中函数的 return 填充列表?
How to populate a list with the return of a function in python?
checkNumber = (150)
primeNumbers = []
# Sieve of Eratosthenes
def sieveOfEratosthenes(n, *args, **kwargs):
isPrime = [True] * (n - 1)
p = 2
while True:
multiplier = 2
multiple = p * multiplier
while multiple <= n:
isPrime[multiple - 2] = False
multiplier += 1
multiple = p * multiplier
for i, prime in enumerate(isPrime):
if prime and i + 2 > p:
p = i + 2
break
else:
break
for i, prime in enumerate(isPrime):
if prime:
print(i + 2)
primeNumbers = sieveOfEratosthenes(checkNumber)
print(primeNumbers)
我希望 'primeNumbers' 成为一个列表,其中填充了此函数输出的质数。
您可以使用函数 return 列表。
def sieveOfEratosthenes(n, *args, **kwargs):
..........
lst = []
for i, prime in enumerate(isPrime):
if prime:
lst.append(i + 2)
return lst
primeNumbers = sieveOfEratosthenes(checkNumber)
您也可以将该函数用作生成器,然后将输出存储在列表中。
def sieveOfEratosthenes(n, *args, **kwargs):
..........
for i, prime in enumerate(isPrime):
if prime:
yield(i + 2)
primeNumbers = list(sieveOfEratosthenes(checkNumber))
输出
[2, 3, 5, 7, 11, 13, 17, 19, 23, ........ ]
checkNumber = (150)
primeNumbers = []
# Sieve of Eratosthenes
def sieveOfEratosthenes(n, *args, **kwargs):
isPrime = [True] * (n - 1)
p = 2
while True:
multiplier = 2
multiple = p * multiplier
while multiple <= n:
isPrime[multiple - 2] = False
multiplier += 1
multiple = p * multiplier
for i, prime in enumerate(isPrime):
if prime and i + 2 > p:
p = i + 2
break
else:
break
for i, prime in enumerate(isPrime):
if prime:
print(i + 2)
primeNumbers = sieveOfEratosthenes(checkNumber)
print(primeNumbers)
我希望 'primeNumbers' 成为一个列表,其中填充了此函数输出的质数。
您可以使用函数 return 列表。
def sieveOfEratosthenes(n, *args, **kwargs):
..........
lst = []
for i, prime in enumerate(isPrime):
if prime:
lst.append(i + 2)
return lst
primeNumbers = sieveOfEratosthenes(checkNumber)
您也可以将该函数用作生成器,然后将输出存储在列表中。
def sieveOfEratosthenes(n, *args, **kwargs):
..........
for i, prime in enumerate(isPrime):
if prime:
yield(i + 2)
primeNumbers = list(sieveOfEratosthenes(checkNumber))
输出
[2, 3, 5, 7, 11, 13, 17, 19, 23, ........ ]