最近做力扣遇到一个问题,
obstacleGrid=[[0],[1]] m = len(obstacleGrid) n = len(obstacleGrid[0]) # 需要考虑m=1 n=1 dp = [[0] * n] * m
但是当写dp[0][0]=1时,dp[1][0]也会自动变1,理由
定义的时候dp的m行是同一个[0]*n的索引,所以一个被改变,其他的都被改变。
靠谱点的初始化方式
dp = [[0 for _ in range(n)] for _ in range(m)]
或者深拷贝
import copy dp = [] a = [0]*n for i in range(m): dp.append(copy.deepcopy(a))
参考:python 对二维数组赋值问题



