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

  • Learn Math Tutorials

    Learn Math T

    20 Kasım 2011
  • LiteralMSPaint

    LiteralMSPai

    27 EKİM 2010
  • Sergio Fernandez

    Sergio Ferna

    1 EKİM 2009