我是python的新手,我想循环一个包含大约20亿个条目的字典.使用:
for key,value in edge_dict.items():
Run Code Online (Sandbox Code Playgroud)
但是我失去了内存异常,因为它似乎试图加载整个东西然后循环它们.我有一些琐碎的事情,比如:
for i in range (2000000000)
Run Code Online (Sandbox Code Playgroud)
但我可以很容易地用它们代替它们
while (i < 2000000000):
i++
Run Code Online (Sandbox Code Playgroud)
这解决了这个问题.但是对于字典,我不知道如何在不使用for-in迭代器的情况下检查密钥.(请注意,键是字符串,值是整数).
for key,value in edge_dict.iteritems():
Run Code Online (Sandbox Code Playgroud)
我想是你想要的
同样如果
for i in range (2000000000)
Run Code Online (Sandbox Code Playgroud)
导致内存错误,您可以使用迭代器
for i in xrange(2000000000)
Run Code Online (Sandbox Code Playgroud)
迭代器(和/或生成器)一次只加载一个项目并在迭代时被消耗...这修复了内存中大型列表可能存在的许多问题
| 归档时间: |
|
| 查看次数: |
1360 次 |
| 最近记录: |