Цепочка генератора Python относится к последней итерации [дубликат]

parchment спросил: 28 апреля 2018 в 08:37 в: python

У этого вопроса уже есть ответ:

  • How does a lambda function refer to its parameters in python? 4 ответа

В этом коде:

x = [0]for i in range(10):
    x = (a+i for a in x)print(list(x)) # [90]

Я подключаю генераторы так что x в одной итерации использует результат предыдущего x. Но, кажется, все х-генераторы используют значение i в последней итерации (9).

Как я могу сделать так, чтобы каждый генератор использовал значение i в итерации, которую они создали? (Так что конечный результат равен 0 + 1 + 2 + 3 + 4 + ...)

1 ответ

U9-Forward ответил: 28 апреля 2018 в 09:02

это то, что вы хотите?

x = [0]for i in range(10):
    x = [a+i for a in x]print(x)

короткий путь:

x = [0]
x = sum([i for i in range(10)])
print(x)