Genel Bakış
Bugün esas olarak Python'daki sığ kopya ve derin kopya içeriğine bir göz atacağım.İşte bunu açıklamak için bir örnek var ~
talep:
Verileri bir listeden başka bir listeye kopyalayın.
Fikirler:
Listeyi kullanarak, eğer emin değilseniz kopyalama modülünü çağırabilirsiniz.
Uygulama:
#! / usr / bin / python # Verileri bir listeden başka bir listeye kopyalayın kopyayı içe aktar a = b = a # atama c = a #Shallow kopya d = copy.copy (a) #Shallow copy e = copy.deepcopy (a) #derin kopya #Çıktı print ('================ a Değişiklikten önce ===============') baskı ('a =', a) baskı ('b =', b) baskı ('c =', c) baskı ('d =', d) baskı ('e =', e) a. ekleme (5) a.append ('c') #Çıktı baskı ('================= a değişimden sonra ===============') baskı ('a =', a) baskı ('b =', b) baskı ('c =', c) baskı ('d =', d) baskı ('e =', e)
Çıktı:
Python kopyası, derin kopya ile sığ kopya arasındaki fark
Genellikle üç yöntem vardır,
alist =
1. Doğrudan atama, varsayılan yüzeysel kopya nesnenin referansını aktarır, orijinal liste değişir, atanan b de aynı değişikliği yapar
2. Yüzeysel kopyayı kopyalayın, hiçbir alt nesne kopyalanmaz, bu nedenle orijinal veriler değişir, alt nesneler değişir
Yüzeysel bir kopyada, kopyalanan yeni nesnenin adresi orijinal nesneden farklıdır, ancak yeni nesnedeki değişken öğenin (liste gibi) adresi, orijinal nesnedeki değişken öğenin adresiyle aynıdır, yani Yüzeysel bir kopyanın sığ bir veri yapısını (değişmez elemanlar) kopyaladığı söylenir Derin bir veri yapısı olarak, nesnedeki değişken eleman yeni adrese kopyalanmaz, orijinal nesnedeki değişkendir. Elemanlar aynı adresi gösterir, bu nedenle değişken eleman yeni nesnede veya orijinal nesnede değiştirildiğinde, iki nesne aynı anda değiştirilir.
Yüzeysel kopya, orijinal nesnenin liste öğesi değiştirilirse, mevcut nesne değiştirilir, mevcut nesnenin liste öğesi değiştirilirse, orijinal nesneyi de etkiler.
3. Nesnedeki öz nesnenin kopyası da dahil olmak üzere derin kopya, böylece orijinal nesnenin değiştirilmesi derin kopyadaki herhangi bir alt öğenin değişmesine neden olmaz
Derin kopya, öncekiyle hiçbir ilgisi olmadığı anlamına gelir.Orijinal nesne nasıl değiştirilirse değiştirilsin, mevcut nesne etkilenmeyecektir.
Faydalı bulursanız, lütfen iletmeye yardım edin! Daha sonra daha fazla devop ve DBA içeriği paylaşacağım ve ilgilenen arkadaşlar buna dikkat edebilir ~
-
- Xiaomi uçurumunu paylaşın SQL optimizasyonu ve yeniden yazma için tek tıkla optimizasyon aracı ile otomatikleştirilmiş araç
-
- Python günlük mükemmel kare sayısı uygulaması
-
- Birinci sınıf mı yoksa tembel koltuk mu? 9 numaralı robot kendi kendini dengeleyen elektrikli sandalye CES 2020'de tanıtıldı
-
- Python günlük uygulama üç sayı sıralaması
-
- Uygulama web sayfası URL'sinin durum izlemeyi zabbix4.2'ye göre yapılandırın
-
- 50.000 yuan'dan fazla Kia Huanchi, netizen: Volkswagen Polo ile karşılaştırıldığında, bu araba daha uygun fiyatlı
-
- Hala Passat için üzgün müsün? Bu Honda Accord'a bir bakın, minimum görünüm iyi görünüyor
-
- Yapılandırma zengin, alan yeterli, netizenler: "Küçük bir Tiggo 8" satın almak için 70.000 yuan'dan fazla buna değmez
-
- Baojun 310 başlarında 40.000 yuan, netizenler: Yapılandırma yüksek olmasa da, elektrikli scooter'dan daha pratik.
-
- 200.000, 600km pil ömrüne sahip yeni enerji araçları satın alabilir mi? Netizen: Bu arabayla ekşiyorum!
-
- Toyota Highlander'ın rakibi, sadece Volkswagen'in halo kutsamasına sahip değil, anahtar "yeterli"
-
- 200.000 yuan'dan fazla Lincoln maceracı, netizen: Yerli üretimden sonra rakip XT4'ten daha mı popüler olacak?