今天做leetcode题的时候,需要创建一个二维数组(m,n)(m表示行,n表示列),我是这样创建的:1
matrix = [[0]*n]*m
测试算法结果的时候无论怎么测结果都是错的,找了半天没有找到错误,之后打印二维数组的值多次后发现matrix[0]…matrix[m-1]的值是一模一样的,查了资料之后知道了这样创建的二维数组复制了m个相同的数组,当你修改其中一个时,另外的值也会被改变。
正确的创建数组的方式:1
matrix = [[0 for i in range(n)] for _ in range(m)]
一个更加简短的创建方式也是可以的:1
matrix = [[0]*n for _ in range(m)]