【发布时间】:2019-12-13 17:08:21
【问题描述】:
我有一个简单的函数,它将节点之间的键列表转换为相邻节点的列表。输入是“整数元组列表”,输出是“整数列表列表”,例如
input: bonds = [(1,2), (1,4)]
output: neighbors = [[],[2,4],[1],[],[1]]
我可以做些什么来更精确地指定这些类型,以便 Cython 可以更好地优化它?函数如下所示:
def bonds2neighs( list bonds, int natom ):
cdef:
int ii
list neighbors = [ [] for ii in xrange(natom) ]
int i,j
for i,j in bonds:
neighbors[i].append(j)
neighbors[j].append(i)
return neighbors
【问题讨论】:
-
虽然问题已明确说明,但请回复:编码风格,也许您想使用与“neighs”不同的词? neigh 是马发出的声音,它也听起来像“不”,一种说不的方式。不幸的是,我想不出邻居的好缩写,但我认为拼写“邻居”是可以的。另外,我们是否可以假设从 1 到 n 的所有整数都将被覆盖,没有间隙?
标签: python optimization types cython