Python: Modifying Copy Affects Original Variable
Q: When creating and modifying a copy of a variable, why does the original variable also change?
A: In Python, variables are references to objects, not the objects themselves. Assigning one variable to another creates a new reference pointing to the same object. Hence, when you modify the copy, you're actually altering the original object.
For instance, consider the code:
org_list = ['y', 'c', 'gdp', 'cap'] copy_list = org_list copy_list.append('hum')
This appends 'hum' to copy_list, and since it references the same list as org_list, org_list also changes.
To create an independent copy, use slicing:
copy_list = org_list[:]
Here, the slice operator ([:]) creates a new copy of the list. Now, you can modify copy_list without affecting org_list. This method can be applied to other variable types, such as pandas dataframes.
The above is the detailed content of Why Does Modifying a Copy of a Python Variable Change the Original?. For more information, please follow other related articles on the PHP Chinese website!