Python二维数组的创建

    xiaoxiao2026-03-29  6

    如果在Python中想要创建一个二维数组,我们该如何写呢?

    >>> A = [0]* 3 * 4 >>> B = [[0]*3] * 4

    是A还是B呢?当然是B了!还是先输出看一下:

    >>> A [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] >>> B [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

    不出所料,我们应该按照B = [[0]*3]*4来创建二维数组。 !!!!!!!!BUT!!!!!!!!! 当你按照上述方式来创建二维数组的时候,如果你对二维数组中的一个数进行改变,会输出什么呢?我们来试一下,比如我们把第一行的第二个数字改为2,B[0][1] = 2,输出:

    >>> B [[0, 2, 0], [0, 2, 0], [0, 2, 0], [0, 2, 0]]

    为什么会是这样?!! 因为list在Python中是个可变类型啊亲!按照B = [[0]*3]*4来创建二维数组只是4个指向这个空列表元素的引用,修改任何一个元素都会改变整个列表的。 另一个栗子:

    >>> A = [0]*3 >>> B = A >>> B[0] = 1 >>> A [1, 0, 0]

    坑爹啊!! 所以,在Python中创建二维数组应该这样写:

    >>> C = [[0]*3 for i in range(4)] >>> C [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]] >>> C[0][1] = 2 >>> C [[0, 2, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]

    所以下次在Python中创建二维数组时候记住了:

    aList = [[0] * cols for i in range(rows)]

    当然,如果你喜欢动一动手指就让整个矩阵发生翻天覆地变化的快感的话,当我没说~

    转载请注明原文地址: https://ju.6miu.com/read-1308308.html
    最新回复(0)