一般我们使用 for k,v in d.items() 来遍历dict中所有的k-v对,Python教程给出的例子也总是这样,但涉及处理大量数据时,比如dict有上G的数据,使用这种方法产生(k,v)的列表会非常耗时,并且占用很多内存。
同STD中的iterator一样,Python中也有迭代子,只是我们不常使用。
dict有几种迭代子,它们分别是:iteritems, iterkeys, itervalues,具体含义可以参见Python的帮助文档。下面我们仅就iteritems给出一个使用的例子:
myIter = myDict.iteritems()
while True :
try :
item_tuple = myIter.next()
print repr(item_tuple)
except StopIteration :
break
另一点,如果只需要在一部分数据中遍历时,使用 for k,v in d.iterms()[m:n] 也是可以的,似乎dict并没有先产生所有items的列表。