描述下 dict 的 item()方法与 iteritems()的不同
dict 字典
items: 可以将字典中的所有项, 以列表方式返回. 因为字典是无序的, 所以用 items 方法返回字典的所有项, 也是没有顺序的.
iteritems: 与 items 方法相比作用大致相同, 只是它的返回值不是列表, 而是一个迭代器.
顾名思义, 迭代器就是用于迭代操作 (for 循环) 的对象, 它像列表一样可以迭代获取其中的每一个元素, 任何实现了 __next__ 方法 (python2 是 next)的对象都可以称为迭代器.
它与列表的区别在于, 构建迭代器的时候, 不像列表把所有元素一次性加载到内存, 而是以一种延迟计算 (lazy evaluation) 方式返回元素, 这正是它的优点. 比如列表含有中一千万个整数,
需要占超过 400M 的内存, 而迭代器只需要几十个字节的空间. 因为它并没有把所有元素装载到内存中, 而是等到调用 next 方法时候才返回该元素(按需调用 call by need 的方式, 本质上 for 循环就是不断地调用迭代器的 next 方法).
来源: http://www.bubuko.com/infodetail-3485072.html