Reviewed by Aditya Kumar · Last reviewed 2026-03-24
**Tuple < List:** Tuple is immutable—no over-allocation for growth. Simpler storage. sys.getsizeof((1,2,3)) < sys.getsizeof([1,2,3]). Typical 10–20% smaller for same elements. **Why:** List has growth buffer; tuple fixed. CPython optimizes small tuples (interning)....
Tuple < List: Tuple is immutable—no over-allocation for growth. Simpler storage. sys.getsizeof((1,2,3)) < sys.getsizeof([1,2,3]). Typical 10–20% smaller for same elements.
Why: List has growth buffer; tuple fixed. CPython optimizes small tuples (interning).
Production: Use tuple for fixed records (return values, dict keys), list for mutable collections. In pipelines: tuple for (id, value) pairs; list for accumulating results. Memory matters at 10M+ elements.
sys.getsizeof((1,2,3)) # ~48
sys.getsizeof([1,2,3]) # ~88
Red Flag: Using list for immutable pairs (wastes memory). Pro-Move: 'We use tuple for (date, metric) keys—20% less memory in our aggregator.'
According to DataEngPrep.tech, this is one of the most frequently asked Python/Coding interview questions, reported at 1 company. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.