Home βΊ Problems βΊ Tuple immutability
Tuple immutability
π§ Predict the output Topic: tuples Difficulty: easy Free
What this problem practises
Tuples are immutable containers that may themselves hold mutable objects, and it is the comma β not the parentheses β that builds one. Any unpacking where the counts disagree raises ValueError.
This is an output-prediction problem: read the snippet carefully and write down exactly what it prints before anything runs. These questions are interview staples because they test whether you know the language rules, or merely recognise their syntax.
Difficulty: easy β the fix or the trick is normally a single line, and a careful read should be enough.
The challenge
The code runs in PyDebugβs in-browser compiler. Open the problem, run the snippet, watch the exact error or output, and keep iterating until it is right. Signed-in solves count toward XP and your daily streak.
The snippet
The interactive editor pre-fills exactly this code β read it, then submit your prediction:
point = (1, 2)
new_point = point + (3,)
print(point)
print(new_point)Understand the rule
This prediction puzzle probes what tuple immutability really guarantees: the tuple's slots can never be reassigned, but an object sitting in a slot can still change if it is itself mutable. t = (1, [2, 3]) rejects t[0] = 9 with TypeError, yet t[1].append(4) succeeds β the tuple still holds the same list; the list just grew.
How to trace it
- Classify each operation: slot assignment (t[i] = x) versus method call on the element (t[i].append(x)).
- Slot assignments raise TypeError: 'tuple' object does not support item assignment β output stops there if uncaught.
- Element mutations go through: the tuple's reference is unchanged, the referenced object is not.
- Note that t += (4,) rebinds t to a brand-new tuple β legal, but the original tuple is unchanged elsewhere.
Common wrong fixes
- Believing immutability is deep β that a list inside a tuple is frozen too.
- Expecting t[1].append(4) to raise because 't is immutable'.
- Assuming += mutates the tuple in place; it constructs a new tuple and rebinds the name.
Rule to remember
A tuple freezes its references, not the objects they point to. Slot assignment fails; mutating a mutable element succeeds β hold both rules to predict the output.
πΌ Learning path: Interview Practice
Problem 12 of 16 in this path. Work them in order β each one builds on the rule before it.
β Previous problemNext in path: Set removes duplicates automatically β
More tuples problems
Keep going
- Output-prediction strategies β how to predict tricky snippets without running them.
- Browse every tuples problem in this topic.
- Common Python errors and what they actually mean, plus the Python glossary for any term used on this page.