0

我正在开发 AI 来执行 MDP,我正在获取状态(在这种情况下只是整数)并为其分配一个值,我将经常这样做。因此,我正在寻找一种可以保存(无需删除)该信息并且具有非常快速的获取/更新功能的数据结构。有没有比普通字典更快的东西?我正在寻找任何真正如此原生的 python、开源的东西,我只需要快速获取。

4

3 回答 3

8

使用 Python 字典是可行的方法。

于 2013-04-23T19:33:54.150 回答
2

你是说你所有的键都是整数?在这种情况下,使用列表并将列表索引视为键值可能会更快。但是,您必须确保从不删除或添加列表项;只需从您认为需要的数量开始,将它们都设置为等于None,如图所示:

mylist = [None for i in xrange(totalitems)]

然后,当您需要“添加”一个项目时,只需设置相应的值即可。

请注意,就实际效率而言,这实际上可能不会为您带来太多好处,而且它可能比仅使用字典更令人困惑。

对于 10,000 个项目,事实证明(在我的机器上,使用我的特定测试用例)访问每个项目并将其分配给一个变量大约需要 334.8 秒(使用列表)和 565 秒(使用字典)。

于 2013-04-23T19:55:05.690 回答
1

如果您想要快速原型,请使用 python。而且不用担心速度。

如果你想编写快速的科学代码(并且你不能在快速的本地库上构建,比如用于线性代数的 LAPACK)用 C、C++ 编写它(也许只能从 Python 调用)。如果快速而不是超快就足够了,您还可以使用 Java 或 Scala。

于 2013-04-24T20:53:02.097 回答