x = 10
y = 20
print(x,y)
y = x
print(x,y)
y = 30
print(x,y)
Yukarıda iki adet değişken (x ve y) tanımladık ve ekrana yazdırdık. y değişkeni ile x değişkenini eşitlediğimiz zaman iki değişkenin de değerleri aynı olacaktır. İkisinin değeri 10 olacaktır. Daha sonra y değişkeninin değerini değiştirip tekrar ekrana yazdırdık. Ekrana yazılan son değerler x = 10 ve y = 30’dur.
Listelerde bu durum biraz farklıdır. Aşağıda örnekle açıklıyoruz.
a = ["elma","armut"]
b = ["kiraz", "erik"]
print(a,b)
Yukarıda iki adet liste (a ve b) tanımladık ve bu listeleri ekrana yazdırdık. Bu listeleri aşağıdaki gibi eşitlediğimiz zaman sadece değerleri değil adresleri de eşitlenmiş oluyor.
a = b # Listeleri eşleştirdiğimizde b'nin elamanları ile a'nın elemanları aynı olur.
print(a,b)
a[0] = "muz"
print(a,b)
Yukarıda sadece a’nın 0 indeks numaralı elemanı değiştiriyoruz. Listeleri a = b ile eşitlediğimiz için b listesinin 0 indeksli elemanı da “muz” olacaktır. Bunun sebebi a = b kodu iki listenin hem değerlerini hem de adreslerini eşitliyor. Eş liste oluyorlar.
Copy() metotu kullanarak a listesini kopyaladığımızda değerleri aynı b listesi oluşturulur.
a = ["Ahmet","Mehmet"]
b = a.copy()
print(a,b)
Copy() metotu yerine aşağıdaki koduda kullanabiliriz. copy metotu ile aynı işi yapar.
b = list(a)
Copy() metotu ile oluşturduğumuz listeler yukarıdaki gibi eş değildir. a’nın 0 indeks numaralı elemanını değiştirdiğimizde b’nin elamanları değişmez.
a[0] = "Ayşe"
print(a,b)