We were told tuples are immutable data structures when we first learned Python, but this is not absolute. If you pass in a mutable data structure, i.e. a list, into a tuple, you will be able to mutate that mutable data structure within the tuple. Please see the following example:
#a tuple with a list in it tuple_list = ('apple', 'orange', ['grape', 'watermelon']) #checking the id of the list item within the tuple id(tuple_list) 4350747776 #append an item into the list tuple_list.append('cucumber') ('apple', 'orange', ['grape', 'watermelon', 'cucumber']) #the id of the list item remains the same after mutation id(tuple_list) 4350747776 #directly assigning the entire list item within a tuple wouldn't work a = ['banana'] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment
The idea is that you should be very careful or perhaps avoid passing in a mutable data structure into a tuple.
Hope you enjoy this week’s Data Hack Tuesday! We will see you next week.