Eric Jacoboni <eric.jacob...@gmail.com>: >>>> a_tuple[1] += [20] > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > TypeError: 'tuple' object does not support item assignment > > [...] > > But, then, why a_tuple is still modified?
That's because the += operator 1. modifies the list object in place 2. tries to replace the tuple slot with the list (even though the list hasn't changed) It's Step 2 that raises the exception, but the damage has been done already. One may ask why the += operator modifies the list instead of creating a new object. That's just how it is with lists. BTW, try: >>> a_tuple[1].append(20) >>> a_tuple[1].extend([20]) Try also: >>> a_tuple[1] = a_tuple[1] Marko -- https://mail.python.org/mailman/listinfo/python-list