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 assignment

FAQ

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.

More Python articles