2012-01-09 23 views
-4

我想写一个400,000项目词典的python脚本。Python中有什么大事?

这是愚蠢的吗?

有多大太大?

(我的数据是在数据库中的计划是搜索字典每次运行与INFILE列表中的程序时就像一个查询。)

回答

4

,以确保最好的办法:写3行脚本来测试它。

对于运行Unix的128 MB计算机来说,这可能太大了。对于拥有24 GB RAM的怪物来说,这可能并不明显。

1

这取决于你想要做什么。可能是唯一的方法,可能完全不适合考虑到手头的问题。

更好的问题是向我们解释你的问题以及你如何考虑接近它(为什么你需要那个字典?)。

1

Python字典实现为hash map,因此访问成本为O(1)

只要你有足够的内存,这不会是一个问题,它会非常快。

1

在64位机我跑到下面的脚本...

>>> d = {} 
>>> for i in xrange(400000): 
...  d[i] = i*2 

这引起了Python的过程中要使用约75MB的内存,制定出每在字典条目大约200字节。

如果你正在存储较大的对象,那么你的内存使用率会更高,但如果你只是使用整数,那么400000并不多。

1

使用简单object s到填充字典有40万项的64位Linux系统:

>>> d = dict((object(), object()) for _ in range(400000)) 
>>> d.__sizeof__() 
25166072 

这意味着dict将耗资约25MB。在创建这个之前,我的Python实例拥有8MB驻留内存,之后是44MB。

当然在现代机器的可接受范围内。