算法学社
記錄難忘的征途
posts - 141,comments - 220,trackbacks - 0
声明大小为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 西月弦 阅读(2382) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理