Python Lambda

পাইথন ল্যাম্বডা

ল্যাম্বডা ফাংশন

একটি ল্যাম্বডা ফাংশন একটি ছোট বেনামী ফাংশন।

একটি ল্যাম্বডা ফাংশন যেকোন সংখ্যক আর্গুমেন্ট নিতে পারে, কিন্তু শুধুমাত্র একটি এক্সপ্রেশন থাকতে পারে।

সিনট্যাক্স

lambda arguments : expression

অভিব্যক্তিটি কার্যকর করা হয় এবং ফলাফলটি ফেরত দেওয়া হয়:

উদাহরণ

একটি যুক্তিতে 10 যোগ করুন এবং ফলাফল ফেরত দিন:

x = lambda a : a + 10
print(x(5))

Lambda ফাংশন যেকোনো সংখ্যক আর্গুমেন্ট নিতে পারে:

উদাহরণ

যুক্তি a কে যুক্তি b দ্বারা গুন করুন এবং ফলাফল প্রদান করুন:

x = lambda a, b : a * b
print(x(5, 6))

উদাহরণ

যুক্তি a, b, এবং c যোগ করুন এবং ফলাফলটি ফেরত দিন:

x = lambda a, b, c : a + b + c
print(x(5, 6, 2))

কেন ল্যাম্বডা ফাংশন ব্যবহার করবেন?

যখন আপনি অন্য ফাংশনের ভিতরে একটি বেনামী ফাংশন হিসাবে ব্যবহার করেন তখন ল্যাম্বডাসের শক্তি সবচেয়ে ভালভাবে দেখানো হয়।

বলুন একটি ফাংশন সংজ্ঞা আছে যা একটি যুক্তি নেয়, এবং সেই যুক্তিটি একটি অজানা সংখ্যা দ্বারা গুণিত হয়:

def myfunc(n):
  return lambda a : a * n

একটি ফাংশন তৈরি করতে সেই ফাংশন সংজ্ঞাটি ব্যবহার করুন যা সর্বদা আপনার পাস করা সংখ্যাকে দ্বিগুণ করে:

উদাহরণ

def myfunc(n):
  return lambda a : a * n

mydoubler = myfunc(2)

print(mydoubler(11))

অথবা, একটি ফাংশন তৈরি করতে একই ফাংশন সংজ্ঞা ব্যবহার করুন যা আপনার পাস করা নম্বরটিকে সর্বদা তিনগুণ করে:

উদাহরণ

def myfunc(n):
  return lambda a : a * n

mytripler = myfunc(3)

print(mytripler(11))

অথবা, একই প্রোগ্রামে উভয় ফাংশন তৈরি করতে একই ফাংশন সংজ্ঞা ব্যবহার করুন:

উদাহরণ

def myfunc(n):
  return lambda a : a * n

mydoubler = myfunc(2)
mytripler = myfunc(3)

print(mydoubler(11))
print(mytripler(11))

💡দ্রষ্টব্য:

আপনার যখন অল্প সময়ের জন্য একটি বেনামী ফাংশন প্রয়োজন তখন ল্যাম্বডা ফাংশন ব্যবহার করুন। জটিল যুক্তির জন্য নিয়মিত ফাংশন ব্যবহার করুন।

অন্তর্নির্মিত ফাংশন সহ Lambda

ল্যাম্বডা সাধারণভাবে কাজ করেmap(), filter(), এবংsorted()যেমন বিল্ট-ইন ফাংশনগুলির সাথে ব্যবহার করা হয়

মানচিত্রের সাথে ল্যাম্বডা ব্যবহার করা হচ্ছে()

map()ফাংশনটি পুনরাবৃত্তিযোগ্য প্রতিটি আইটেমের জন্য একটি ফাংশন ব্যবহার করে:

উদাহরণ

তালিকার সমস্ত সংখ্যা দ্বিগুণ করুন:

numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)

ফিল্টার () সহ ল্যাম্বডা ব্যবহার করা

filter()ফাংশন একটি ফাংশন আইটেমগুলির একটি তালিকা তৈরি করে যা সত্য প্রদান করে:

উদাহরণ

একটি তালিকা থেকে জোড় সংখ্যা ফিল্টার করুন:

numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(odd_numbers)

sorted() এর সাথে ল্যাম্বডা ব্যবহার করা

sorted()ফাংশনটি কাস্টম বাছাইয়ের জন্য একটি কী হিসাবে ল্যাম্বডা ব্যবহার করতে পারে:

উদাহরণ

দ্বিতীয় উপাদান দ্বারা tuples তালিকা সাজান:

students = [("Emil", 25), ("Tobias", 22), ("Linus", 28)]
sorted_students = sorted(students, key=lambda x: x[1])
print(sorted_students)

উদাহরণ

দৈর্ঘ্য অনুসারে স্ট্রিংগুলি সাজান:

words = ["apple", "pie", "banana", "cherry"]
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)

অনুশীলন করুন

নিম্নলিখিত কোডের ফলাফল কি হবে:

x = lambda a, b : a - b
print(x(5, 3))
15
✗ ভুল! এটি গুণের ফল, বিয়োগ নয়
8
✗ ভুল! এটি একটি সংযোজন ফলাফল, বিয়োগ নয়
2
✓ ঠিক আছে! 5 - 3 = 2. ল্যাম্বডা ফাংশন বিয়োগ সম্পাদন করে
3
✗ ভুল! এটি মান পরিবর্তনের ফলাফল (3 - 5 = -2), তবে এখানে নয়