请原谅我的英语
Python版本:2.7.6
桌面:4核8G内存
脚本1:
a = {}
a['test1'] = 12345
a['test2'] = 12456
........
and so on
........
a['test4075096'] = 45637
脚本2:
for i in range(0,4075096):
a['test' + str(i)] = i
结果
当我运行script2时,它很快就完成了
当我运行script1时,它需要很大的内存和cpu,我的桌面卡住了
那么,有人知道这种现象背后的原因吗
Tags:
因为在第一段代码中,python必须逐行读取代码并将CONST值加载到内存中,而在第二部分中,您已经指定了要分配的值,python将在内存中创建它们。因此,python需要做的就是迭代
range
对象并将值赋给键。你知道吗通过调用函数上的
dis.dis()
可以看到这种行为,函数为您演示了相关字节码:如果增加赋值,可以看到相对字节码也会增加:
相关问题 更多 >
编程相关推荐