我想写一个400,000项目词典的python脚本。Python中有什么大事?
这是愚蠢的吗?
有多大太大?
(我的数据是在数据库中的计划是搜索字典每次运行与INFILE列表中的程序时就像一个查询。)
我想写一个400,000项目词典的python脚本。Python中有什么大事?
这是愚蠢的吗?
有多大太大?
(我的数据是在数据库中的计划是搜索字典每次运行与INFILE列表中的程序时就像一个查询。)
,以确保最好的办法:写3行脚本来测试它。
对于运行Unix的128 MB计算机来说,这可能太大了。对于拥有24 GB RAM的怪物来说,这可能并不明显。
这取决于你想要做什么。可能是唯一的方法,可能完全不适合考虑到手头的问题。
更好的问题是向我们解释你的问题以及你如何考虑接近它(为什么你需要那个字典?)。
Python字典实现为hash map,因此访问成本为O(1)。
只要你有足够的内存,这不会是一个问题,它会非常快。
在64位机我跑到下面的脚本...
>>> d = {}
>>> for i in xrange(400000):
... d[i] = i*2
这引起了Python的过程中要使用约75MB的内存,制定出每在字典条目大约200字节。
如果你正在存储较大的对象,那么你的内存使用率会更高,但如果你只是使用整数,那么400000并不多。
使用简单object
s到填充字典有40万项的64位Linux系统:
>>> d = dict((object(), object()) for _ in range(400000))
>>> d.__sizeof__()
25166072
这意味着dict
将耗资约25MB。在创建这个之前,我的Python实例拥有8MB驻留内存,之后是44MB。
当然在现代机器的可接受范围内。