【发布时间】:2012-04-14 19:12:21
【问题描述】:
我在 python 中初始化二维数组时遇到问题。我想要一个 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的数组,效率会很低吗?
更新
我还可以初始化二维数组的字典吗?我有一本像这样的字典:
algos = { "FIFO": ..., "LRU": ..., "Random": ... }
我想像下面这样初始化一个字典:
algoData = { "FIFO": 2D arr, "LRU": 2D arr, "Random": 2D arr }
【问题讨论】:
标签: python list python-3.x