深度学习-pytorch实践-day6

Python 数组初始化 大坑

(错误示例) list 多维数组初始化

使用list 定义 2x3 的数组dp, 并初始化为全0。

1
2
3
dp = [[0]*3] * 2 

$ [[0, 0, 0], [0, 0, 0]]

看似没毛病,但其实是大坑!后期debug很难定位。

那么下面对 dp[1][1] 赋值,并查看dp的值。

1
2
3
4
dp[1][1] = 1
print(dp)

$ [[0, 1, 0], [0, 1, 0]]

会发现,不仅是[1][1] 位置被修改了,而且[0][1]也被修改了。

(正确示例) list 多维数组初始化

1
dp = [[0 for n in range(0, column)] for m in range(0, row)]