You cannot use items instead iteritems in all places in Python. For example, the following code:
class C: def __init__(self, a): self.a = a def __iter__(self): return self.a.iteritems() >>> c = C(dict(a=1, b=2, c=3)) >>> [v for v in c] [('a', 1), ('c', 3), ('b', 2)]
will break if you use items:
class D: def __init__(self, a): self.a = a def __iter__(self): return self.a.items() >>> d = D(dict(a=1, b=2, c=3)) >>> [v for v in d] Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: __iter__ returned non-iterator of type 'list'
The same is true for viewitems, which is available in Python 3.
Also, since items returns a copy of the dictionary’s list of (key, value) pairs, it is less efficient, unless you want to create a copy anyway.
In Python 2, it is best to use iteritems for iteration. The 2to3 tool can replace it with items if you ever decide to upgrade to Python 3.