python二维list的声明

来源:互联网 发布:猫叔盒子软件 编辑:程序博客网 时间:2024/05/18 00:30
转自:http://www.cppblog.com/hanfei19910905/archive/2012/11/27/195731.aspx
关于python二维数组的声明
声明大小为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)]
原创粉丝点击