python中什么是大的?
我正在考虑使用400000项字典编写python脚本 那是不是很蠢 多大太大python中什么是大的?,python,dictionary,Python,Dictionary,我正在考虑使用400000项字典编写python脚本 那是不是很蠢 多大太大 (我的数据在数据库中。我的计划是在每次运行带有内嵌列表的程序时搜索字典。就像查询一样。)确保这一点的最佳方法是:编写一个三行脚本来测试它 对于运行Unix的128MB机器来说,它可能太大了。在内存为24GB的怪物身上可能看不到这一点。这取决于你想做什么。可能是唯一的方法,考虑到眼前的问题,可能完全不合适 一个更好的问题是向我们解释你的问题,以及你是如何考虑解决它的(为什么你需要这条命令?) Python字典实现为,因此
(我的数据在数据库中。我的计划是在每次运行带有内嵌列表的程序时搜索字典。就像查询一样。)确保这一点的最佳方法是:编写一个三行脚本来测试它
对于运行Unix的128MB机器来说,它可能太大了。在内存为24GB的怪物身上可能看不到这一点。这取决于你想做什么。可能是唯一的方法,考虑到眼前的问题,可能完全不合适
一个更好的问题是向我们解释你的问题,以及你是如何考虑解决它的(为什么你需要这条命令?) Python字典实现为,因此访问成本为O(1)
只要你有足够的内存,这将不会是一个问题,它会非常快 在64位机器上,我运行了以下脚本
>>> d = {}
>>> for i in xrange(400000):
... d[i] = i*2
这导致Python进程多使用了大约75MB的内存,计算出字典中每个条目大约200字节
如果存储的对象较大,则内存使用率会较高,但如果仅使用整数,则400000并不多。在64位Linux系统上,使用simple
object
s用400000项填充dict:
>>> d = dict((object(), object()) for _ in range(400000))
>>> d.__sizeof__()
25166072
这意味着dict
将耗资约25MB。在创建之前,我的Python实例有8MB的驻留内存,之后是44MB
当然在现代机器可以接受的范围内