小知识点随手记录…
Numpy
或许你会说用numpy中的数组不就可以了,想定义几维就几维,没错numpy确实方便很多。
1 | >>> import numpy |
但如果不用numpy呢?
List
有人会说可以定义一个二维列表代替二维数组呗。
1. 错误方式
一开始一定会有人这样定义
1 | >>> a = [[0]*3]*2 |
看是不是成功了,但当我们修改其中的某个值的时候,就会发现奇怪的地方
1 | >>> a[0][0] = 1 |
特么的怎么连a[1][0]
也跟着变成1了,因为上面的定义方式等价于:
1 | >>> temp_list = [0] * 3 |
所以这么用list定义二维数组的方法是错的,那么正确的方式应该怎么做呢?
2. 正确方式
我们可以用for来定义二维数组。
1 | >>> arra = [ [0 for i in range(3)] for i in range(2)] |
可以看到这样做就没有上面的错误出现了。