gotchapythonCriticalCanonical
What is the difference between dict.items() and dict.iteritems() in Python 2?
Viewed 0 times
andbetweenthedifferenceiteritemsdictitemswhatpython
Problem
Are there any applicable differences between
From the Python docs:
If I run the code below, each seems to return a reference to the same object. Are there any subtle differences that I am missing?
Output:
dict.items() and dict.iteritems()?From the Python docs:
dict.items(): Return a copy of the dictionary’s list of (key, value) pairs.dict.iteritems(): Return an iterator over the dictionary’s (key, value) pairs.If I run the code below, each seems to return a reference to the same object. Are there any subtle differences that I am missing?
#!/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'Output:
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 objectSolution
It's part of an evolution.
Originally, Python
Then, generators were introduced to the language in general, and that method was reimplemented as an iterator-generator method named
One of Python 3’s changes is that
Originally, Python
items() built a real list of tuples and returned that. That could potentially take a lot of extra memory.Then, generators were introduced to the language in general, and that method was reimplemented as an iterator-generator method named
iteritems(). The original remains for backwards compatibility.One of Python 3’s changes is that
items() now return views, and a list is never fully built. The iteritems() method is also gone, since items() in Python 3 works like viewitems() in Python 2.7.Context
Stack Overflow Q#10458437, score: 947
Revisions (0)
No revisions yet.