You’ll be able to
- Define anonymous functions with
lambda - Transform sequences with
map()and comprehensions - Filter sequences with
filter()and comprehensions - Know when to prefer a named function over a lambda
Loading lesson…
Why this matters
PEP 8 and most style guides (Google, Black-adjacent) prefer comprehensions over map/filter, but lambdas remain load-bearing in pandas .apply, sorted(key=...), and functools.reduce. Knowing when to reach for operator.itemgetter over lambda is a real perf win.
Common pitfalls
- Assigning a lambda to a name —
f = lambda x: x+1fails linting; usedeffor anything named. - Late binding in loop-defined lambdas —
[lambda: i for i in range(3)]all return 2; pin withlambda i=i: i. - Reaching for
map(lambda x: x.name, items)whenoperator.attrgetter('name')is faster and clearer.