我正在尝试找到一种在列表列表中查找给定节点的所有邻居的方法。数组如下所示:
0,2,4,1,6,0,0
2,0,0,0,5,0,0
4,0,0,0,5,5,0
1,0,0,0,1,1,0
6,5,0,1,0,5,5
0,0,5,1,5,0,0
0,0,0,0,5,0,0
到目前为止,我的代码是:
#!/usr/bin/python
#holds all source nodes
source = []
#read in and store the matrix
def create_matrix(file):
with open('network.txt') as f:
Alist = []
for line in f:
part = []
for x in line.split(','):
part.append(int(x))
Alist.append(part)
return Alist
def check_neighbours(Alist):
i = iter(Alist)
item = i.next()
source.append(item)
print source
file = ("F:/media/KINGSTON/Networking/network.txt")
Alist = create_matrix(file)
check_neighbours(Alist)
显然,这只输出矩阵的第一行,但我想要一些不同的东西。例如,我将从节点 [0,0] 开始,它是 0,然后找到 [0,1] 和 [1,0]。但如果我不在矩阵的边缘,我还需要查看 3x3 半径。我知道如何找到当前节点右侧的下一个邻居,但我真的不确定如何在节点旁边找到任何东西,包括对角节点。