Functions Advanced
Lambda Functions
Inline Anonymous Functions
💡 Lambda ek quick sticky-note function hai — jab ek chhota, one-time function chahiye ho (jaise sort() ko custom logic dena), poora def likhne ki jagah, ek line mein inline likh do.
Python lambda C++ ke lambda jaisa hi concept hai — anonymous, inline function. Syntax: lambda parameters: expression. Sirf EK expression ho sakta hai (multiple statements nahi, koi loops/if-else blocks nahi) — simple cases ke liye hi.
square = lambda x: x ** 2
print(square(5)) # 25
add = lambda a, b: a + b
print(add(3, 4)) # 7
# Sabse common use — sort() ke saath custom key:
students = [("Aarav", 85), ("Riya", 92), ("Zoya", 78)]
students.sort(key=lambda s: s[1]) # marks se sort
print(students) # [('Zoya', 78), ('Aarav', 85), ('Riya', 92)]λ
Lambda ek quick sticky-note function hai — jab ek chhota, one-time function chahiye ho (jaise sort() ko custom logic dena), poora def likhne ki jagah, ek line mein inline likh do.
1 / 2
⚡ Quick Recap
- lambda params: expression — ek line, ek expression
- sort()/filter()/map() ke saath bahut common
- Complex logic ke liye normal def use karo
On this page (2 subtopics)
map() har element par ek function apply karta hai, filter() sirf wo elements rakhta hai jo condition True den — dono lambda ke saath bahut common combination hain, list comprehensions ka older alternative.
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # [1, 4, 9, 16, 25]
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens) # [2, 4]Tip: Modern Python mein list comprehensions ([x**2 for x in numbers]) usually map()/filter()+lambda se zyada Pythonic aur readable maane jaate hain — dono kaam karte hain, but comprehensions prefer kiya jaata hai.
Lambda sirf ek EXPRESSION tak limited hai — koi statements (assignments, loops, multiple lines) nahi ho sakte. Agar logic complex ho, lambda force karna galat approach hai.
# Ye NAHI ho sakta lambda mein:
# bad = lambda x:
# y = x + 1 # SyntaxError — statements allowed nahi
# return y
# Iski jagah normal function:
def good(x):
y = x + 1
return yCommon Mistake: Lambda mein if-else sirf ternary expression form mein chal sakta hai (lambda x: "even" if x%2==0 else "odd"), normal if-else block statements nahi.