Lambda: Write Small Functions Quickly
Introduction
In this chapter, you will learn lambda expressions in Python, which are compact anonymous functions. Lambda is useful for short, one-time operations, especially with tools like sorted(), map(), and filter(). Once you understand where to use it, your code can become cleaner and more expressive.
Prerequisites
- Python
3.10+installed - Basic understanding of functions, parameters, and return values
- Ability to run
.pyfiles in terminal or IDE
What Is a Lambda
A lambda is an anonymous function written in one line.
Basic form:
lambda parameters: expressionEquivalent example:
# Normal function
def add(a, b):
return a + b
# Lambda version
add_lambda = lambda a, b: a + b
print(add(2, 3))
print(add_lambda(2, 3))1) Why Use Lambda
Lambda is helpful when:
- function logic is very short
- function is used only once
- passing function as argument
For complex logic, normal def is usually better.
Tip
Rule of Thumb
If the logic needs more than one clear expression, prefer def for readability.
2) Lambda with sorted()
One of the most common use cases.
# Student score tuples
students = [("Emma", 95), ("Liam", 88), ("Noah", 92)]
# Sort by score descending
ranked = sorted(students, key=lambda item: item[1], reverse=True)
print(ranked)Without lambda, you'd need a separate helper function.
3) Lambda with map()
map() applies a function to each item.
# Raw prices
prices = [10, 20, 30]
# Add tax (10%)
taxed_prices = list(map(lambda p: p * 1.1, prices))
print(taxed_prices)4) Lambda with filter()
filter() keeps items that satisfy a condition.
# Raw scores
scores = [55, 72, 89, 40, 95]
# Keep passing scores
passed = list(filter(lambda s: s >= 60, scores))
print(passed)5) Lambda with max() / min()
Lambda can define comparison keys for object-like data.
# Product list
products = [
{"name": "Keyboard", "price": 49.9},
{"name": "Mouse", "price": 25.5},
{"name": "Monitor", "price": 199.0}
]
# Get most expensive product
max_product = max(products, key=lambda p: p["price"])
print(max_product)6) Real Mini Example: Score Ranking + Pass Filter
This mini project combines several lambda use cases.
# Student score records
students = [
{"name": "Emma", "score": 95},
{"name": "Liam", "score": 58},
{"name": "Noah", "score": 88},
{"name": "Olivia", "score": 73},
]
# Sort by score descending
ranked = sorted(students, key=lambda s: s["score"], reverse=True)
# Keep only passing students
passed = list(filter(lambda s: s["score"] >= 60, students))
# Build uppercase name list
upper_names = list(map(lambda s: s["name"].upper(), students))
print("Ranked:", ranked)
print("Passed:", passed)
print("Upper names:", upper_names)This pattern appears in reporting, preprocessing, and lightweight analytics scripts.
Warning
Avoid deeply nested lambda chains.
If readability drops, split logic into named functions.
Common Beginner Mistakes
Mistake 1: Using Lambda for Complex Multi-Step Logic
Lambda supports only one expression and becomes unreadable if forced.
Mistake 2: Overusing Lambda Everywhere
Not every function needs lambda. Use it only when it improves clarity.
Mistake 3: Forgetting to Convert map() / filter() Results
In many beginner contexts, you need list(...) to see final values clearly.
Surprise Practice Challenge
Build a "Mini Employee Analyzer":
- Create employee list with
name,salary,department - Use lambda +
sorted()to sort by salary descending - Use lambda +
filter()to keep salary >= 10000 - Use lambda +
map()to generate name list in lowercase - Print all results clearly
If you finish this, you can use lambda confidently in common data-processing tasks.
FAQ
Is lambda faster than normal functions?
Usually performance difference is not the main reason. Readability and use case are more important.
Can lambda have multiple expressions?
No. Lambda supports a single expression only.
Should I replace all small functions with lambda?
No. If a named function improves readability or reuse, keep def.
Where is lambda most useful for beginners?
Most commonly with sorted(key=...), map(), and filter().