Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tạo dãy Fibonacci đến n bằng lambda trong Python


Dãy Fibonacci bắt đầu 0, 1, số sau bằng tổng hai số trước. Bài viết minh họa tạo dãy Fibonacci n phần tử bằng hàm lambda.

Cách 1: sum() và map()

Dùng map(lambda _: listA.append(sum(listA[-2:])), range(2, count)) để mở rộng list.

def fibonacci(count):
    listA = [0, 1]
    any(map(lambda _: listA.append(sum(listA[-2:])), range(2, count)))
    return listA[:count]

print(fibonacci(8))  # [0, 1, 1, 2, 3, 5, 8, 13]

Cách 2: reduce()

Dùng functools.reduce với lambda cộng hai phần tử cuối.

from functools import reduce
fib_numbers = lambda y: reduce(lambda x, _: x + [x[-1] + x[-2]], range(y-2), [0, 1])
print(fib_numbers(8))  # [0, 1, 1, 2, 3, 5, 8, 13]