Python: примеры однострочного кода Фибоначчи

Вот фрагмент кода Python для генерации последовательности Фибоначчи в одну строку:

fibonacci = lambda n: reduce(lambda x, _: x + [x[-1] + x[-2]], range(n - 2), [0, 1])

Этот код использует функцию reduceиз модуля functoolsдля генерации последовательности Фибоначчи до заданного значения n. Предоставляются начальные значения [0, 1], и для каждой итерации лямбда-функция добавляет в список сумму двух последних элементов. Результатом является список, содержащий последовательность Фибоначчи.

В качестве альтернативы вы можете использовать выражение-генератор для достижения того же результата:

fibonacci = lambda n: list(islice(((lambda a, b: lambda: (a, a := b, b := a + b))() for _ in range(n)), n))

В этом коде последовательность Фибоначчи генерируется с использованием выражения-генератора вместе с функцией isliceиз модуля itertools. Лямбда-функция внутри выражения-генератора поддерживает состояние последовательности Фибоначчи и возвращает каждое значение.