首页 > 解决方案 > 在python中创建二维数组的两种方法

问题描述

以下两种在python中创建二维数组的方法有什么区别?

def arrays(row, column):
    myList = [[None]*column for i in range(row)]

def arrays(row, column):
   myList = [[None]*column]*row

标签: pythonpython-3.xlist

解决方案


在第一种情况下,使用单独的指针来存储您的子列表。

在第二种情况下,使用相同的指针。所以改变一个的值也会改变其他的。

这是一个说明性示例:-

def arrays1(row, column):
    return [[None]*column for i in range(row)]

def arrays2(row, column):
    return [[None]*column]*row

x = arrays1(2, 2)
y = arrays2(2, 2)

x[0][0] = 1
y[0][0] = 1

print(x)  # [[1, None], [None, None]]
print(y)  # [[1, None], [1, None]]

推荐阅读