reduce applies a function cumulatively to reduce a sequence to a single value.
1from functools import reduce23# Sum of list4result = reduce(lambda acc, x: acc + x, [1, 2, 3, 4, 5])5print(result) # 1567# With initial value8result = reduce(lambda acc, x: acc + x, [1, 2, 3], 10)9print(result) # 161011# Find maximum12max_val = reduce(lambda a, b: a if a > b else b, [3, 1, 4, 1, 5, 9])13print(max_val) # 91415# Flatten nested list16nested = [[1, 2], [3, 4], [5, 6]]17flat = reduce(lambda acc, x: acc + x, nested)18print(flat) # [1, 2, 3, 4, 5, 6]1920# Build dict from pairs21pairs = [("a", 1), ("b", 2), ("c", 3)]22result = reduce(lambda d, pair: {**d, pair[0]: pair[1]}, pairs, {})23print(result) # {"a": 1, "b": 2, "c": 3}2425# Pipe functions26from functools import reduce2728functions = [29 lambda x: x + 1,30 lambda x: x * 2,31 lambda x: x - 3,32]3334pipe = reduce(lambda f, g: lambda x: g(f(x)), functions)35print(pipe(5)) # ((5 + 1) * 2) - 3 = 9
Use cases: