সমস্যা বিবরণ
ফিবোনাচি সিরিজ ০ এবং ১ দিয়ে শুরু হয় এবং প্রতিটি টার্ম আগের দুটোর যোগফল। Lambda ফাংশন ব্যবহার করে প্রথম n টার্ম জেনারেট করতে হবে।
পদ্ধতি ১: sum() এবং map() ব্যবহার
map(lambda _: listA.append(sum(listA[-2:])), range(2, count)) দিয়ে লিস্ট বিল্ড করুন।
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]
পদ্ধতি ২: functools.reduce() ব্যবহার
reduce(lambda x, _: x + [x[-1] + x[-2]], range(y-2), [0, 1]) দিয়ে এক লাইনে ফিবোনাচি।
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]