-1
list1=["a","b","c","d"]
list2 = list1

list1.remove("a")

print(list1,list2) ----> ['b', 'c', 'd'] ['b', 'c', 'd']

In the list mentioned above, I want to retain old values which I had copied from list1 to list2.

But after I modify list1, list2 is still pointing to list1 contents.

How can I prevent this from happening and have list2 containing the values ["a","b","c","d"]

gautam
  • 41
  • 6

1 Answers1

0

use copy() like this

list1=["a","b","c","d"]
list2 = list1.copy()
list1.remove("a")
print(list1,list2)   # ['b', 'c', 'd'] ['a', 'b', 'c', 'd']

or list slicing

list1=["a","b","c","d"]
list2 = list1[:]
list1.remove("a")
print(list1,list2)   # ['b', 'c', 'd'] ['a', 'b', 'c', 'd']

or list()

list1=["a","b","c","d"]
list2 = list(list1)
list1.remove("a")
print(list1,list2)   # ['b', 'c', 'd'] ['a', 'b', 'c', 'd']
ZzzZZz
  • 437
  • 2
  • 14