SORU
2 Mayıs 2011, PAZARTESİ


Python hızlı şekilde sözlüğe kopyalamak

Sözlük çok ile çalışan bir Python programı var. Sözlükler kopyalarını binlerce kez yapmak zorundayım. Anahtarları ve ilişkili içerikleri hem de bir kopyasını istiyorum. Kopya düzenlenecek ve orijinal (kopya gibi değişiklikleri orijinal etkilememeli.) bağlantılı olmak zorunda değil

Anahtarları Dizeleri, Tamsayı değerlerdir (0/1).

Ben şu anda basit bir şekilde kullanın:

newDict = oldDict.copy()

Benim Kod profil kopyalama işlemi çoğu zaman aldığını göstermektedir.

dict.copy() yöntemi için daha hızlı bir alternatif var mı? En hızlı ne olurdu?

CEVAP
2 Mayıs 2011, PAZARTESİ


dict Python işlemleri için C source bakarak, oldukça naif (ama) verimli bir kopyasını yapıyorlar. Aslında PyDict_Merge bir çağrı aşağı kaynar:

PyDict_Merge(PyObject *a, PyObject *b, int override)

Bu ise onları nesneler varsa eğer aynı nesne olup olmadıklarını ve bu gibi şeyler için hızlı denetler. Bundan sonra hedef dict için tek seferlik yeniden boyutlandırma/ayırma cömert ve kopyaları tek tek unsurları. Çok daha hızlı dahili copy() Daha hayal bile edemiyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Defence Videos

    Defence Vide

    13 Mayıs 2013
  • jkimisyellow

    jkimisyellow

    6 Mayıs 2009
  • Ownage Pranks

    Ownage Prank

    13 AĞUSTOS 2007