Lists and tuples in Python are both sequence types, and share a number of operations common to all sequence types:
However they are quite different in purpose and they way they are most commonly used:
- Lists are mutable, and are generally used to store homogeneous objects (objects of the same type), which are accessed by iteration
- Tuples are immutable, and are generally used to store heterogeneous objects, which are accessed by unpacking or indexing
This makes tuples more like lightweight objects, which is how they are often used. The
namedtuple type takes this further by allowing indexing by named attributes.