python创建矩阵_Python矩阵的创建(不使用numpy

本文探讨了在Python中创建二维数组时遇到的问题及解决方案。通过实例展示了使用`*`运算符创建列表副本的陷阱,说明这种方法实际上创建的是对同一个列表的多个引用,而非独立的二维数组。为避免这种问题,文章提供了两种正确创建二维数组的方法:直接定义和使用列表推导式。这些方法确保了对数组元素的修改不会影响整个矩阵的其他部分。
摘要由CSDN通过智能技术生成

此部分是对python List的扩展应用。

在python中定义一个二维数组,

先看如下例子:

a = [1, 2, 3]

print(a * 3)

[1, 2, 3, 1, 2, 3, 1, 2, 3]

print([a * 3])

[[1, 2, 3, 1, 2, 3, 1, 2, 3]]

这并不是一个二维数组,此方法不可用。但可用来扩展列表的长度。

再看下面一个例子:

a = [1, 2, 3]

matrix = [a] * 3

print(matrix)

[[1, 2, 3], [1, 2, 3], [1, 2, 3]]

此方法,出现的结果好像是建立了一个二维数组。但经过如下测试,

matrix[0][1] = 5

print(matrix)

[[1, 5, 3], [1, 5,3], [1, 5, 3]]

发现,修改的是每个List的第二个元素。

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

并根据文档提示,可用入下办法创建一个矩阵。

例如创建一个3*3的数组

方法1 直接定义

matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]][/py]

方法2 间接定义

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值