Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中什么是大的?_Python_Dictionary - Fatal编程技术网

python中什么是大的?

python中什么是大的?,python,dictionary,Python,Dictionary,我正在考虑使用400000项字典编写python脚本 那是不是很蠢 多大太大 (我的数据在数据库中。我的计划是在每次运行带有内嵌列表的程序时搜索字典。就像查询一样。)确保这一点的最佳方法是:编写一个三行脚本来测试它 对于运行Unix的128MB机器来说,它可能太大了。在内存为24GB的怪物身上可能看不到这一点。这取决于你想做什么。可能是唯一的方法,考虑到眼前的问题,可能完全不合适 一个更好的问题是向我们解释你的问题,以及你是如何考虑解决它的(为什么你需要这条命令?) Python字典实现为,因此

我正在考虑使用400000项字典编写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

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