python中的2D列表初始化有什么区别?

时间:2019-10-12 04:51:18

标签: python-3.x multidimensional-array

为什么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]]

0 个答案:

没有答案