List vs Tuple in Python — Key Differences
Lists are mutable and tuples are immutable — that single difference drives when to use each, plus performance and use-as-dict-key implications.
Published September 17, 2026
A list ([1, 2, 3]) is a mutable, ordered collection — items can be added, removed, or changed after creation. A tuple ((1, 2, 3)) is an immutable, ordered collection — once created, its contents can't change.
Common causes
- Python provides both to distinguish between data that should change over its lifetime (lists) and data that represents a fixed, unchanging record (tuples)
How to fix it
- Use a tuple for fixed collections like coordinates (x, y) or a function returning multiple values
- Use a list when you need to append, remove, or reorder items over time
- Use a tuple as a dictionary key or set member — lists can't be used this way since they're unhashable
Example
point = (3, 4) # tuple — fixed pair
scores = [90, 85] # list — can grow
scores.append(70) # works
# point[0] = 5 # TypeError: tuples don't support assignmentFAQ
Are tuples faster than lists?
Slightly — because tuples are immutable, Python can optimize their storage and iteration a bit more than lists, though the difference rarely matters outside tight loops.