使用python迭代一个大字典(超过20亿条目)

时间:2014-08-13 21:55:06

标签: python dictionary

我是python的新手,我想循环一个包含大约20亿条目的字典。使用:

for key,value in edge_dict.items():

但是我失去了内存异常,因为它似乎试图加载整个东西然后循环它们。我有这个问题,如:

for i in range (2000000000)

但我可以轻松地用

替换它们
while (i < 2000000000):
    i++ 

解决了这个问题。但是对于字典,我不知道如何在不使用for-in迭代器的情况下检查密钥。 (请注意,键是字符串,值是整数。)

1 个答案:

答案 0 :(得分:8)

for key,value in edge_dict.iteritems():

我认为是你想要的

同样如果

for i in range (2000000000)

导致内存错误,您可以使用迭代器

for i in xrange(2000000000)

迭代器(和/或生成器)一次只加载一个项目并在迭代时被消耗...这修复了内存中大型列表可能存在的许多问题