Question
Asked By – d.putto
Let’s take an example
a=['help', 'copyright', 'credits', 'license']
b=a
b.append('XYZ')
b
['help', 'copyright', 'credits', 'license', 'XYZ']
a
['help', 'copyright', 'credits', 'license', 'XYZ']
I wanted to append value in list ‘b’ but the value of list ‘a’ have also changed.
I think I have little idea why its like this (python passes lists by reference).
My question is “how can I pass it by value so that appending ‘b’ does’t change values in ‘a’ ?”
Now we will see solution for issue: python list by value not by reference [duplicate]
Answer
You cannot pass anything by value in Python. If you want to make a copy of a
, you can do so explicitly, as described in the official Python FAQ:
b = a[:]
This question is answered By – phihag
This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0