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

  • Amena

    Amena

    15 Kasım 2006
  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007
  • UKF

    UKF

    2 Aralık 2009