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

  • Bad Lip Reading

    Bad Lip Read

    22 Mart 2011
  • Eric Enge

    Eric Enge

    2 Kasım 2009
  • NextKsa

    NextKsa

    7 EKİM 2009