একটি lambda হলো একটি ছোট, নামহীন ফাংশন যা একটি একক এক্সপ্রেশনে সীমাবদ্ধ — PHP-এর অ্যারো ফাংশনের (fn) Python সমতুল্য।
double = lambda n: n * 2
print(double(5)) # 10
# Equivalent to:
def double(n):
return n * 2একটি lambda একাধিক আর্গুমেন্ট নিতে পারে, কিন্তু এর body সবসময় ঠিক একটি এক্সপ্রেশন — কোনো স্টেটমেন্ট নেই, একাধিক লাইন নেই।
উপরের উদাহরণের মতো একটি lambda খুব কমই একটি ভ্যারিয়েবলে assign করা হয় (নাম থাকা যেকোনো কিছুর জন্য একটি সাধারণ def ভালো পড়া যায়) — এদের আসল ব্যবহার হলো সরাসরি অন্য কিছুতে পাস করা একটি এক-বার-ব্যবহারযোগ্য ফাংশন হিসেবে, সবচেয়ে সাধারণভাবে sorted()-এর key আর্গুমেন্টে:
students = [
{"name": "Priya", "age": 21},
{"name": "Amit", "age": 19},
]
# Sort by age, using a lambda to say "compare by this"
students_sorted = sorted(students, key=lambda s: s["age"])
print(students_sorted)key=lambda s: s["age"] sorted()-কে বলে দেয় কী তুলনা করতে হবে, শুধু এই একটি সর্টের জন্য অন্য কোথাও আলাদাভাবে-নামযুক্ত একটি ফাংশন সংজ্ঞায়িত করার দরকার ছাড়াই।
PHP-এর array_map() আর array_filter()-এর সরাসরি Python সমতুল্য আছে, প্রায়ই একটি lambda-এর সাথে জোড়া — যদিও একটি list comprehension (আগের পাঠ থেকে) একই কাজ করে আর আধুনিক Python-এ সাধারণত বেশি পঠনযোগ্য মনে করা হয়:
numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda n: n * 2, numbers))
print(doubled) # [2, 4, 6, 8, 10]
# The more idiomatic Python way to write the same thing:
doubled = [n * 2 for n in numbers]