为什么python中2D列表的这两个初始化不同?
adj_matrix_1 = [[0 for x in range(5)] for y in range(5)]
adj_matrix_2 = [[0]*(5)]*(5)
即使两个变量最初都提供相同的输出。现在,当我尝试使用以下代码分配值时
adj_matrix[1][2] = 100
adj_matrix_1
输出:
[[0, 0, 0, 0, 0], [0, 0, 100, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
和adj_matrix_2
输出
[[0, 0, 100, 0, 0], [0, 0, 100, 0, 0], [0, 0, 100, 0, 0], [0, 0, 100, 0, 0], [0, 0, 100, 0, 0]]