SORU
5 Mayıs 2012, CUMARTESİ


Ne dict arasındaki farktır.() öğeleri ve dict.() iteritems?

dict.items() dict.iteritems() arasında yürürlükteki herhangi bir fark var mı?

Dokümanlar: Python

dict.items(): bir Dönüşkopyalasözlük (anahtar, değer) çiftleri listesi.

dict.iteritems(): Dönüşyineleyicisözlük (anahtar, değer) çiftleri.

Eğer aşağıdaki kodu çalıştırırsanız, her aynı nesne için bir başvuru döndürmek gibi görünüyor. Kaçırdığım herhangi bir küçük farklar vardır?

#!/usr/bin/python

d={1:'one',2:'two',3:'three'}
print 'd.items():'
for k,v in d.items():
   if d[k] is v: print '\tthey are the same object' 
   else: print '\tthey are different'

print 'd.iteritems():'   
for k,v in d.iteritems():
   if d[k] is v: print '\tthey are the same object' 
   else: print '\tthey are different'   

Çıkış:

d.items():
    they are the same object
    they are the same object
    they are the same object
d.iteritems():
    they are the same object
    they are the same object
    they are the same object

CEVAP
5 Mayıs 2012, CUMARTESİ


Bir evrimin bir parçası.

Aslında, Python items() dizilerini gerçek bir listesini inşa ve o döndü. Ekstra bellek bir sürü almak olabilir.

Sonra, jeneratörler genel olarak dile getirilmiştir, ve bu yöntem yineleyici-jeneratör yöntemi iteritems() adlı reimplemented. Orijinal geriye uyumluluk için kalır.

3. Python değişikliklerden biri items() şimdi yineleyicisi döndürür ve bir liste hiç bir zaman tam olarak inşa edilmiştir. iteritems() yöntemi items() şimdi Python 2 iteritems() gibi çalışır, çünkü, kayboldu.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Harvest: Greg Laurie

    Harvest: Gre

    6 HAZİRAN 2006
  • Kingsimba357

    Kingsimba357

    7 NİSAN 2008
  • thelonelyisland

    thelonelyisl

    23 Aralık 2005