Python: Understanding Reference Copying
When creating a copy of a list in Python, it can be surprising to discover that changes made to the copy also affect the original list. This is because Python uses reference copying, which creates a reference to the original list instead of a separate instance.
To illustrate, let's consider the following code:
org_list = ['y', 'c', 'gdp', 'cap'] copy_list = org_list copy_list.append('hum') print(copy_list) print(org_list)
This code will output:
['y', 'c', 'gdp', 'cap', 'hum'] ['y', 'c', 'gdp', 'cap', 'hum']
As we can see, the original list org_list is modified after the copy_list append operation. This is because copy_list is not a separate instance but rather a reference to org_list.
To create an independent copy of the original list, we can use the slicing operator:
copy_list = org_list[:]
This creates a new list that is a copy of org_list. Changes made to copy_list will no longer affect org_list. This approach can also be used to copy other types of variables, such as Pandas DataFrames.
The above is the detailed content of Why Do Changes to a Python List Copy Affect the Original List?. For more information, please follow other related articles on the PHP Chinese website!