python里有什么大不了的?

时间:2012-01-09 11:24:27

标签: python dictionary

我正在考虑用400,000项词典编写一个python脚本。

那是愚蠢的吗?

有多大太大了?

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

5 个答案:

答案 0 :(得分:4)

最好的方法是确保:编写一个3行脚本来测试它。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

在64位计算机上,我运行了以下脚本......

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

这导致Python进程使用大约75MB的内存,在字典中每个条目大约200字节。

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

答案 4 :(得分:1)

在64位Linux系统上使用简单的object来填充包含400000项的dict:

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

这意味着dict的费用约为25MB。在创建之前,我的Python实例有8MB驻留内存,之后是44MB。

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