What are some mutable and immutable datatypes/datastructures in Python?
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.
In Python's object model, every object has a type, value, and identity. Whether its internal value can change without creating a new identity determines its mutability:
### 1. Mutable Data Types (Can be altered in place):
list: Dynamic arrays ([1, 2, 3]).dict: Key-value hash tables ({'key': 'value'}).set: Unordered collections of unique items ({1, 2, 3}).bytearray: Mutable sequences of bytes.- Custom Classes: By default, user-defined class instances are mutable unless decorated with
@dataclass(frozen=True).
### 2. Immutable Data Types (Cannot be modified after instantiation):
int,float,complex: Numeric types.bool:TrueandFalse.str: Textual strings ("hello").tuple: Fixed sequences ((1, 2, 3)).frozenset: Immutable hashable sets.bytes: Immutable byte sequences.
### Architectural Impact:
Only immutable objects are hashable and can serve as dictionary keys or elements of a set.
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.