我本来就是想建一个二维数组,像存储一些东西,但是我发现结果很不对劲,然后调试了一下,发现了很奇怪的现象。
问题在于 graph = [[0] * 21] * 21 这句
通过乘法进行得到的二维列表,graph[0]、graph[1]、graph[2]......graph[20]这21个一维列表其实是一个列表,也就是浅拷贝的一种
一开始我以为是在graph[i][j] = (i,j) 那里拷贝一下就行,发现不是,后来也找到原因就是1楼说的那样可惜被抢答了..创建的时候里面的列表都指向同一个地址,比如你graph[0]操作graph[0,1,2,3...]都会跟着变,方法也很简单,这样创建就能避免
graph = [[0 for i in range(21)] for j in range(21)]