如何使用 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, ........ ]