Хотя вы можете построить list
прямо сейчас, как показано здесь , эту задачу можно решить более эффективно, используя генераторы . Идея состоит в том, что с генератором вы выполняете вычисления тогда, когда это действительно необходимо, и вам не нужно (не нужно) хранить потенциально большие промежуточные объекты. * и почему name = lambda ...
- это анти-шаблон в Python.
def fibonacci(n):
a = 0
b = 1
count = 0
if n < 0:
print("Incorrect input")
return
elif n == 0:
yield a
elif n == 1:
yield b
else:
while count < n:
yield a
a, b = b, a + b
count += 1
def cube(x):
return x ** 3
n = 8
print(list(fibonacci(n)))
# [0, 1, 1, 2, 3, 5, 8, 13]
print(list(map(cube, fibonacci(n))))
# [0, 1, 1, 8, 27, 125, 512, 2197]