python dict的items和iteritems函数

先看看help帮助信息:

items(...)
    D.items() -> list of D's (key, value) pairs, as 2-tuples
iteritems(...)
    D.iteritems() -> an iterator over the (key, value) items of D

items()返回的是一个完整的二元组列表,显示所有元素;而iteritems()返回的是一个迭代器,也可称为生成器。

看个例子,

>>> a={"Jordan":23, "Kobe":24, "T-mac":1}
>>> a
{'Kobe': 24, 'Jordan': 23, 'T-mac': 1}
>>> b=a.items()
>>> b
[('Kobe', 24), ('Jordan', 23), ('T-mac', 1)]
>>> type(b)
<type 'list'>
>>> c=a.iteritems()
>>> c
<dictionary-itemiterator object at 0x1e6f0a8>
>>> type(c)
<type 'dictionary-itemiterator'>
>>> c.next()
('Kobe', 24)
>>> c.next()
('Jordan', 23)
>>> c.next()
('T-mac', 1)

items()返回一个列表,以二元组的形式展示了字典中所有的元素,是比较耗内存的,尤其是在元素数量巨大时。但是在获取元素时有巨大的优势。

iteritems()作为生成器,保存的是算法,因此对空间不敏感,但是如果生成算法复杂,相比于items()需要更多的时间来获取下一个元素。这也就是经典的时间换空间。

猜你喜欢

转载自blog.csdn.net/u010039418/article/details/81177782
今日推荐