我正在开发AI来执行MDP,我正在获取状态(在本例中只是整数)并为其赋值,我将会做很多这样的事情。因此,我正在寻找一种数据结构,它可以保存(不需要删除)该信息,并具有非常快的获取/更新功能。有没有比普通字典更快的词典?我正在寻找任何真正的本地python,开源,我只需要快速获得。
发布于 2013-04-24 03:33:54
使用Python字典是一种可行的方法。
发布于 2013-04-24 03:55:06
你是说你所有的密钥都是整数?在这种情况下,使用列表并仅将列表索引作为键值来处理可能会更快。在这种情况下,it 可能更快。但是,您必须确保从不删除或添加列表项;只需从您认为需要的数量开始,将它们都设置为None
,如下所示:
mylist = [None for i in xrange(totalitems)]
然后,当您需要“添加”一个项目时,只需设置相应的值。
请注意,就实际效率而言,这实际上可能不会给您带来太多好处,而且可能比仅仅使用字典更令人困惑。
对于10,000个条目,结果表明(在我的机器上,使用我的特定测试用例)访问每个条目并将其分配给变量,使用列表大约需要334.8秒,使用字典大约需要565秒。
发布于 2013-04-25 04:53:02
如果你想要一个快速的原型,使用python。而且不用担心速度。
如果你想编写快速的科学代码(而且你不能构建在快速的本地库之上,比如线性代数的LAPACK ),用C、C++编写(可能只在Python中调用)。如果使用快速而不是超快就足够了,您还可以使用Java或Scala。
https://stackoverflow.com/questions/16177610
复制相似问题