今天用List创建二维数组:
s=[[0]*2]*3
>>> s
[[0, 0], [0, 0], [0, 0]]
对s[1][1]加1时,发现整个第二列都被赋值,变成
>>> s[1][1]+=1
>>> s
[[0, 1], [0, 1], [0, 1]]
原因:
list * n—>n shallow copies of list concatenated, n个list的浅拷贝的连接
另外一种方式进行创建多维数组,以免浅拷贝:
>>> lists = [[]for iin range(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]
之前的二维数组创建方式为:
myList= [([0]* 3)for iin range(4)]