In this chapter, we will cover the following recipes:
- Searching, sorting, filtering—high-performance searching in sorted containers
- Getting the nth element of any iterable—grabbing the nth element of any iterable, generators too
- Grouping similar items—splitting an iterable into groups of similar items
- Zipping—merging together data from multiple iterables into a single iterable
- Flattening a list of lists—converting a list of lists into a flat list
- Producing permutations and—computing all possible permutations of a set of elements
- Accumulating and reducing—applying binary functions to iterables
- Memoizing—speeding up computation by caching functions
- Operators to functions—how to keep references to callables for a Python operator
- Partials—reducing the number of arguments of a function by preapplying...