在刷leetcode的时候,有时候都需要初始化数组,那么Python中如何初始化数组呢?
1.一维数组初始化
nums = [0 for i in range(10)]
或者
nums = [0]*10
2.二维数组初始化
我们只能用列表推导式的方式来生成
matrix = [[for i in range(m)] for j in range(n)]
为什么不能用matrix = [[0]*m]*n
这是因为通过*生成的列表,列表中的每一个元素的地址都是一样的,即都是指向同一个对象,当我们进行赋值的时候,例如matrix[i][j] = 12
,对应的子列表中的元素都跟着改变
>>> matrix = [[0]*2]*3
>>> matrix
[[0, 0], [0, 0], [0, 0]]
>>> id(matrix[0])
4519032008
>>> id(matrix[1])
4519032008
>>> matrix[0][0]=20
>>> matrix
[[20, 0], [20, 0], [20, 0]]
网友评论