We can place lambda function inside list and dictionary literals. This way we can use lambda expressions to create jump tables.
>>> L = [lambda s: s.strip().lower(),
... lambda s: s.strip().upper(),
... lambda s: s.lstrip().title(),
... lambda s: s[::-1].lower(),
... ]
Here, we have stored these lambda expressions in a list:
>>> L[1]('Python')
PYTHON
>>> L[3]('Python')
nohtyp
Here, we have used lambda expressions as values of a dictionary:
>>> d = {'add': lambda x, y: x + y,
... 'subtract': lambda x, y: x - y,
... 'multiply': lambda x, y: x * y,
... 'divide': lambda x, y: x // y,
... 'power': lambda x, y: x ** y,
... 'double': lambda x: x * 2,
... 'square': lambda x: x ** 2,
... 'table': lambda x: [x * i for i in range(1, 11)],
... 'summation': lambda x: sum(range(1, x + 1)),
... }
>>> d['summation'](4)
10
>>> d['power'](3,2)
9
So, when you have to write a lot of small functions that are used only once, you can use lambda expressions instead of defining lots of one-off def statements.