错误创建方法:
[[]]*3表示的是3个指向这个空列表元素的引用,是一种浅拷贝,因此修改任何一个元素都会改变整个列表
a = [[0]*10]*3
a[0][1] = 1
print(a) # [[0, 1, 0, 0], [0, 1, 0, 0], [0, 1, 0, 0]]
正确方法:
’_’ 是一个循环标志,也可以用i,j 等其他字母代替,下面的循环中不会用到,起到的是循环此数的作用
b = [[1 for _ in range(4)] for i in range (3)]
b[0][1] = 2
print(b) # [[1, 2, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]]