python 创建二维数组


创建一个3*3的2维数组

错误方法1:

array = [0, 0, 0]
matrix = [array*3]
print matrix

输出:[[0,0,0,0,0,0,0,0,0]],错误

 

错误方法2:

array = [0, 0, 0]
matrix = [array] * 3
print matrix

输出:[[0, 0, 0], [0, 0, 0], [0, 0, 0]],看起来正确

但是:

matrix[0][1] = 1
print matrix

输出:[[0, 1, 0], [0, 1, 0], [0, 1, 0]],错误

为什么呢?因为matrix = [array] * 3操作中,只是创建3个指向array的引用,所以一旦array改变,matrix中3个list也会随之改变。

 

 

正确方法:

方法1 直接定义

matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

方法2 间接定义

matrix = [[0 for i in range(3)] for i in range(3)]

 

 

参考:https://www.cnblogs.com/woshare/p/5823303.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM