dict.items()
Ve arasında uygulanabilir farklar var dict.iteritems()
mı?
Gönderen Python docs :
dict.items()
: Sözlüğün (anahtar, değer) çiftleri listesinin bir kopyasını döndürür .
dict.iteritems()
: Sözlüğün (anahtar, değer) çiftleri üzerinden bir yineleyici döndür .
Aşağıdaki kodu çalıştırırsanız, her biri aynı nesneye bir başvuru döndürüyor gibi görünüyor. Kaçırdığım ince farklar var mı?
#!/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'
Çıktı:
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
d[k] is v
her zaman True döndürür çünkü python, -5 ile 256 arasındaki tüm tamsayılar için bir tamsayı nesnesi dizisi tutar: docs.python.org/2/c-api/int.html Bu aralıkta bir int oluşturduğunuzda, aslında sadece mevcut nesneye bir referans geri alın: >> a = 2; b = 2 >> a is b True
Ama,>> a = 1234567890; b = 1234567890 >> a is b False
iteritems()
değişikliği iter()
Python 3'te? Yukarıdaki dokümantasyon bağlantısı bu yanıtla eşleşmiyor gibi görünüyor.
items()
öğeleri bir kerede oluşturur ve bir liste döndürür.iteritems()
bir jeneratör döndürür - jeneratör hernext()
çağrıldığında bir defada bir öğe "oluşturan" bir nesnedir .