I've got a list that I create a copy of in order to do some manipulations while still keeping the original list. However, when I set copy_list
equal to org_list
, they become the same thing, and if I change copy_list
, org_list
changes too. For example:
org_list = ['y', 'c', 'gdp', 'cap']
copy_list = org_list
copy_list.append('hum')
print(copy_list)
print(org_list)
returns
['y', 'c', 'gdp', 'cap', 'hum']
['y', 'c', 'gdp', 'cap', 'hum']
I don't know too much about what is actually going on but it looks like org_list
is actually passing itself to copy_list
so that they are actually the same thing.
Is there a way to make an independent copy of org_list without doing something clumsy like:
copy_list = []
for i in org_list:
copy_list.append(i)
I say this because I have the same problem with other types of variables, for example a pandas dataframe.