Değer ve Referans Tipleri (Value and Reference Types)

Python Python - Ders Notları Yazılım
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)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir