Apakah ada perbedaan yang berlaku antara dict.items()
dan dict.iteritems()
?
Dari dokumen Python :
dict.items()
: Kembalikan salinan daftar pasangan (kunci, nilai) kamus.
dict.iteritems()
: Kembalikan iterator melalui pasangan (kunci, nilai) kamus.
Jika saya menjalankan kode di bawah ini, masing-masing tampaknya mengembalikan referensi ke objek yang sama. Apakah ada perbedaan halus yang saya lewatkan?
#!/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'
Keluaran:
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
akan selalu mengembalikan True karena python menyimpan array objek integer untuk semua integer antara -5 dan 256: docs.python.org/2/c-api/int.html Ketika Anda membuat sebuah int dalam kisaran itu, Anda sebenarnya hanya mendapatkan kembali referensi ke objek yang ada: >> a = 2; b = 2 >> a is b True
Tapi,>> a = 1234567890; b = 1234567890 >> a is b False
iteritems()
perubahan iter()
pada Python 3? Tautan dokumentasi di atas sepertinya tidak cocok dengan jawaban ini.
items()
membuat item sekaligus dan mengembalikan daftar.iteritems()
mengembalikan generator - generator adalah objek yang "menciptakan" satu item pada suatu waktu setiap kalinext()
dipanggil.