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()需要更多的时间来获取下一个元素。这也就是经典的时间换空间。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值