我正在考虑用400,000项词典编写一个python脚本。
那是愚蠢的吗?
有多大太大了?
(我的数据在数据库中。计划是每次我使用infile列表运行程序时搜索字典。就像查询一样。)
答案 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。
当然在现代机器的可接受范围内。