One question that I faced today, which actually tested the immutability of the tuples in Python:
Interviewer: Are tuples immutable in Python?
Me: Yes
Interviewer: So what does
print(t1)here print?t1 = (4, 5) t1 = t1 + (91, 10) print(t1)Me:
(4, 5, 91, 10)Interviewer: How does immutability of tuple then define this behavior?
Me: It's got nothing to do with immutability,
t1label is referring to a new tuple.Interviewer:
>>> t = (1, 2, [3, 4]) >>> t[2] += [5, 6]What will happen next?
Me:
TypeErroris raisedInterviewer: What will be the value of
tbe after that?Me:
(1, 2, [3, 4])or(1, 2, [3, 4, 5, 6])maybe, not sureInterviewer: What made you think the value will change to
(1, 2, [3, 4, 5, 6])and what will happen if I write>>> t[2] = t[2] + [5, 6]will
t2still be(1, 2, [3, 4, 5, 6])after this operation?
