Python矩阵的创建(不使用numpy)
此部分是對(duì)python List的擴(kuò)展應(yīng)用。
在python中定義一個(gè)二維數(shù)組,
先看如下例子:
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]]
這并不是一個(gè)二維數(shù)組,此方法不可用。但可用來擴(kuò)展列表的長度。
再看下面一個(gè)例子:
a = [1, 2, 3]
matrix = [a] * 3
print(matrix)
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
此方法,出現(xiàn)的結(jié)果好像是建立了一個(gè)二維數(shù)組。但經(jīng)過如下測(cè)試,
matrix[0][1] = 5
print(matrix)
[[1, 5, 3], [1, 5,3], [1, 5, 3]]
發(fā)現(xiàn),修改的是每個(gè)List的第二個(gè)元素。
經(jīng)過查看官方文檔:https://docs.python.org/2/library/stdtypes.html#sequence-types-str-unicode-list-tuple-bytearray-buffer-xrange
發(fā)現(xiàn)matrix = [array] * 3操作中,只是創(chuàng)建3個(gè)指向array的引用,所以一旦array改變,matrix中3個(gè)list也會(huì)隨之改變。
并根據(jù)文檔提示,可用入下辦法創(chuàng)建一個(gè)矩陣。
例如創(chuàng)建一個(gè)3*3的數(shù)組
方法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)]
參考:https://www.cnblogs.com/woshare/p/5823303.html
總結(jié)
以上是生活随笔為你收集整理的Python矩阵的创建(不使用numpy)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: m4怎么压枪
- 下一篇: python zip()函数的理解与应用