Variables and variable types
Lists and dictionaries are variable types. This means that you can add, remove and change their elements. In the topic about variables, it was explained that a variable is a label: several different variables can point to the same object.
Consider the following example:
list1 = [1, 2, 3]
list2 = list1
list2[2] = 10
print(list1)
The above code will print [1, 2, 10]. This is because list1 and list2 are different labels, but point to the same object. To make a copy of a list or dictionary, use the method copy:
list1 = [1, 2, 3]
list2 = list1.copy()
list2 [2] = 10
print(list1)
This time the program will print [1, 2, 3] because we have modified a copy of list1.
You can use the operator is to check if two variables point to the same object. Please try to type in the console:
list1 = [1, 2, 3]
list2 = list1
list2 is list1 # True
When we create a copy, the operator is will allow us to check that we are dealing with different objects. In turn, the comparison operator (==) will show that these lists are identical:
list1 = [1, 2, 3]
list2 = list1.copy()
list2 is list1 # False
list2 == list1 # True
The opposite of the operator is is is not.
Published under Creative Commons Attribution-NonCommercial-ShareAlike license.