What is the difference between list and tuple?
Assesses fundamental understanding of Python conventions, runtime behavior, and memory/performance considerations.
Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.
Both lists and tuples are ordered sequence collections in Python, but they differ fundamentally in mutability, memory allocation, and intended design use:
| Feature | list | tuple |
| :--- | :--- | :--- |
| Mutability | Mutable (elements can be added, updated, or removed in place) | Immutable (fixed size and contents after creation) |
| Syntax | Square brackets: [1, 2, 3] | Parentheses: (1, 2, 3) |
| Memory Allocation | Over-allocates memory buffer to allow dynamic resizing | Compact, fixed-size contiguous memory block |
| Iteration Performance | Slightly slower iteration and creation overhead | Faster creation and iteration |
| Hashability | Unhashable (cannot be used as dictionary key or set item) | Hashable (can be dictionary key if all elements are hashable) |
| Idiomatic Usage | Homogeneous collections that grow or shrink | Heterogeneous records, fixed coordinate tuples (x, y) |
### Memory Benchmark Example:
import sys
l = [1, 2, 3, 4, 5]
t = (1, 2, 3, 4, 5)
print(sys.getsizeof(l)) # ~104 bytes (due to resizing buffer)
print(sys.getsizeof(t)) # ~80 bytes (exact compact allocation)
Candidate Response Strategy & Interview Tips
- Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
- Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
- Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
- Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.