所以我有一个n x n邻接矩阵,n x n NumPy数组,其中第I行和第j列是第I个和第j个城市之间的距离。
我还有一份清单,按照特定的顺序,我必须访问城市,并将距离加在一起。
m = matrix
i = matrix_row
j = matrix_column
list = [1, 3, 4, 14, 26, 23...]
列表项指向行/列编号。
所以第二行第四列是:
distance = m[3][14]
d = 124.9
我想把它们添加为:
m[list[0]][list[1]] + m[list[1]][list[2]] + m[list[2]][list[3]]... and so on
我如何迭代?
您可以按如下方式使用zip
和sum
(或者在python 3.10+中使用itertools.pairwise
而不是zip
(:
import numpy as np
m = np.reshape(range(9), (3, 3)) # an example matrix
print(m)
# [[0 1 2]
# [3 4 5]
# [6 7 8]]
lst = [0, 2, 1, 0]
total_dist = sum(m[i][j] for i, j in zip(lst, lst[1:]))
print(total_dist) # 12