声明大小为n的一维list的方法可以是[0] * n
那么以此类推,是不是[[0] * n] * n就可以声明二维数组了呢。
答案是否定的。
因为 [] * n和 Java的clone() 函数是一样的,属于"浅拷贝"。
也就是说,[[0] * n] * n 是把 [0] * n的“指针” 拷贝了n份。也就是“引用数据类型”。
所以修改[2][3]的话,所有list的第三位全都被修改了。
目前的解决方法是 [[0 for j in xrange(0,m)] for i in xrange(0,n)]
posted on 2012-11-27 13:45
西月弦 阅读(2492)
评论(0) 编辑 收藏 引用