Python’da liste kopyalama

Python’da listeleri aşağıdaki eşitlikle kopyalamaya çalıştığınızda liste içerisindeki değerler kopyalanmaz; listenin referans değeri kopyalanır. Bu durumda bir listede yapılan değişiklikler diğerinde de geçerli olur.

liste1=["deger1","deger2","deger3"]
liste2=liste1
liste2.append("deger4")
print liste1,liste2
['deger1', 'deger2', 'deger3', 'deger4'] ['deger1', 'deger2', 'deger3', 'deger4']

Bunun yerine değerleri kopyalamak için aşağıdakiler kullanılabilir:

liste1=["deger1","deger2","deger3"]
liste2=list(liste1)
liste2.append("deger4")
print liste1,liste2
['deger1', 'deger2', 'deger3'] ['deger1', 'deger2', 'deger3', 'deger4']

Veya:
liste1=["deger1","deger2","deger3"]
liste2=liste1[:]
liste2.append("deger4")
print liste1,liste2
['deger1', 'deger2', 'deger3'] ['deger1', 'deger2', 'deger3', 'deger4']

Son iki örnekte verilen kodlarda sadece değerler kopyalanır; bir listede yapılan değişiklik diğerini etkilemez.

Leave a Reply

Your email address will not be published. Required fields are marked *