Junior
Yüzeysel kopyalama nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Yüzeysel kopya, yeni karmaşık bir nesne oluşturur, ancak içinde bulunan gömülü nesnelerin kopyalarını oluşturmaz. Bunun yerine, orijinal nesnenin gömülü nesnelerine referanslar kopyalanır.
Ana noktalar:
- Yeni bir koleksiyon (liste, sözlük, küme) oluşturur.
- Yeni koleksiyonun öğeleri, orijinal koleksiyonun aynı nesnelerine referanslardır.
- Bir kopyadaki gömülü nesnelerde yapılan değişiklikler diğerine yansır.
- Koleksiyonun kendisinde (öğe ekleme/silme) yapılan değişiklikler diğerini etkilemez.
Uygulamalar:
- Listeler, sözlükler, kümeler için
.copy()yöntemi. copymodülündencopy.copy()fonksiyonu.- Listeler için dilimleme
[:].
# Liste örneği
original_list = [[1, 2], 3]
shallow_copy_list = original_list.copy()
print(f"Orijinal: {original_list}")
print(f"Yüzeysel kopya: {shallow_copy_list}")
print(f"Gömülü listelerin aynı nesne olup olmadığı: {original_list[0] is shallow_copy_list[0]}") # True - referanslar aynı
original_list[0][0] = 99 # Gömülü listeyi değiştiriyoruz
print(f"Değişiklik sonrası: {original_list}")
print(f"Yüzeysel kopya değişiklik sonrası: {shallow_copy_list}") # Her iki kopyada da değişiklik görünür
original_list.append(4) # Koleksiyonu kendisini değiştiriyoruz
print(f"Append sonrası: {original_list}")
print(f"Yüzeysel kopya append sonrası: {shallow_copy_list}") # Sadece orijinalde
# copy.copy() örneği
import copy
original_dict = {'a': [1, 2], 'b': 3}
shallow_copy_dict = copy.copy(original_dict)
print(f"Orijinal: {original_dict}")
print(f"Yüzeysel kopya: {shallow_copy_dict}")
print(f"Gömülü listelerin aynı nesne olup olmadığı: {original_dict['a'] is shallow_copy_dict['a']}") # True
original_dict['a'][0] = 99 # Gömülü listeyi değiştiriyoruz
print(f"Değişiklik sonrası: {original_dict}")
print(f"Yüzeysel kopya değişiklik sonrası: {shallow_copy_dict}") # Her iki kopyada da değişiklik görünür