我在Python中初始化2D数组时遇到了问题。我想要一个6x6的数组,我已经执行了以下操作:
arr = [[None]*6]*6
但是当我这样做时:
>>> arr[1][2]=10
>>> arr
[[None, None, 10, None, None, None], [None, None, 10, None, None, None], [None, None, 10, None, None, None], [None, None, 10, None, None, None], [None, None, 10, None, None, None], [None, None, 10, None, None, None]]
我注意到我只设置了1项,但它在所有行上都被“复制”了。出了什么问题?我认为这与它引用相同的列表有关,但我该如何解决?
我想:
for key, _ in algos.items():
algoData[key] = []
for i in range(0,6):
algoData[key].append([])
for j in range(0,6):
algoData[key][i].append(None)
这个代码可以工作,但初始化一个空的6x6数组好像太麻烦了。如果我想要一个10000x10000的数组,那么它将非常低效?
更新内容
我能否初始化一个2D数组的字典?我有一个像这样的字典:
algos = { "FIFO": ..., "LRU": ..., "Random": ... }
我想要像下面这样初始化一个字典:
algoData = { "FIFO": 2D arr, "LRU": 2D arr, "Random": 2D arr }
lineData = np.empty((dims, length))
吗? - Jiew Meng