转载:python中二维数组的初始化

借鉴原文链接的内容:

方法1 直接定义

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

方法2 间接定义

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

方法3 

matrix = []
for i in range(3):
    matrix.append([0] * 3)
可以解决浅拷贝的问题

引发浅拷贝的现象(注意:以下行为会使列表产生奇怪的特性)

base = [0] * 3
matrix = []
for i in range(3):
    matrix.append(base)
print(matrix)
matrix[1][1] = 2
print(matrix)
结果:

[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 2, 0], [0, 2, 0], [0, 2, 0]]
说明matrix中三个[0, 0, 0]都是base的映射,改一个,base就被改了,然后三个元素全改了。
————————————————
版权声明:本文为CSDN博主「tellw0.0」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/z1314520cz/article/details/85162183

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值