A list is mutable, so you can add, remove and change its items after you create it. A tuple is immutable, so its contents are fixed once it exists. Use a list for a collection that grows or changes, and a tuple for a fixed group of values, such as a pair of coordinates.
| List | Tuple |
|---|---|
| Mutable | Immutable |
Uses square brackets [] |
Uses parentheses () |
| Slower performance | Faster performance |
| More memory usage | Less memory usage |
A tuple is a little faster and smaller because Python allocates it once at a fixed size. A list keeps spare room so appends stay cheap. Because a tuple is immutable, it is also hashable when all its items are, so it can be a dictionary key or a set member. A list cannot.
# List - mutable
my_list = [1, 2, 3]
my_list[0] = 10 # Works
# Tuple - immutable
my_tuple = (1, 2, 3)
# my_tuple[0] = 10 # TypeError
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
The diagram below the answer is the concept . Jump to it ↓