Python günlük alıştırması nasıl kopyalanır

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çmak için açık kaynaklı bir WEB grafik aracını paylaşın - SQL tek tuş optimizasyonunu destekleyin
önceki
Bir MySQL deneyinden performance_schema / information_schema yetkilendirmesini görmek için
Sonraki
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?
To Top