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

  • ChannelRichard

    ChannelRicha

    7 Kasım 2008
  • Gimpology.com Video Tutorials

    Gimpology.co

    3 ŞUBAT 2008
  • talkandroid

    talkandroid

    27 Mayıs 2010