Chapter 3. Containers and Collections – Storing Data the Right Way
Python comes bundled with several very useful collections, a few of which are basic Python collection data types. The rest are advanced combinations of these types. In this chapter, we will explain some of these collections, how to use them, and the pros and cons of each of them.
Before we can properly discuss data structures and the related performance, a basic understanding of time complexity (and specifically the big O notation) is required. No need to worry! The concept is really simple, but without it, we cannot easily explain the performance characteristics of operations.
Once the big O notation is clear, we will discuss the basic data structures:
list
dict
set
tuple
Building on the basic data structures, we will continue with more advanced collections, such as the following:
- Dictionary-like types:
ChainMap
Counter
Defaultdict
OrderedDict
- List types:
Deque
Heapq
- Tuple types:
NamedTuple
- Other types:
Enum