在Cython中迭代对象列表/集合的最快方法?

时间:2015-02-06 06:02:05

标签: python cython

我有一个我正在构建的神经网络库的代码

for connection in self.backwardConnections:
    self._z += connection.value()

其中connectioncdef class ConnectionbackwardConnections是连接的python list

我有两个问题

  1. Python列表中最快的迭代是什么? (我也可以用典型的for int i in range (len (..))
  2. 完成它
  3. 如果我放弃了python列表方法,那么什么样的集合类型(例如numpy数组,c ++向量等)可以容纳我的Connection对象并提高性能?

1 个答案:

答案 0 :(得分:0)

for ... in ...:构造是迭代Python中列表的最快方法。您也不会通过切换到其他数据类型来显着提高性能。这两件事已经很快了。

我的猜测是你要以错误的方式优化这段代码。而不是查看可能占用运行时间的一小部分的循环机制,为什么不考虑优化对.value()的调用呢?

对于你想要做的事情,Python也有可能太慢了。但我发现这种情况非常罕见。