我只想用Python创建一个空的10*3*2数组。
我第一次想到这个,但这不管用:
parameters = [ [ [] * 2 ]*3 ] * 10
这给了我一个十个向量的向量,其中有三个[]元素:
[[[], [], []], [[], [], []], [[], [], []], [[], [], []], [[], [], []],
[[], [], []], [[], [], []], [[], [], []], [[], [], []], [[], [], []]]
也就是说,如果我想访问参数[0][0][1],我就越界了,而我想为第三个维度上最里面的向量设置一个维度2。
然后我想到了这个
[ [ [[] * 2] ]*3 ] * 10
我想[[] * 2]
现在会给我带来我想要的东西,最里面的两个元素向量。我得到
[[[[]], [[]], [[]]], [[[]], [[]], [[]]], [[[]], [[]], [[]]],
[[[]], [[]], [[]]], [[[]], [[]], [[]]], [[[]], [[]], [[]]],
[[[]], [[]], [[]]], [[[]], [[]], [[]]], [[[]], [[]], [[]]], [[[]], [[]], [[]]]]
那么,怎么做呢,或者怎么逃逸这个初始化呢?
Kd rgds公司。
我建议你用纽比做这种东西。它使访问列或行更加容易。对于你的用例
Numpy也会更好地处理你的数据,它用Fortran或C语言实现了很多矩阵代数,所以在(可能的)将来,当你做矩阵乘法之类的事情时,它会更快。
首先,您应该在最里面的列表中插入一些内容(比如None)。其次,当您在最外层列表中使用乘法时,它会将引用复制到内部列表,因此当您更改一个元素时,您也会在所有其他列表中更改此元素:
因此,您应该使用列表理解:
但是,我建议使用
numpy
作为其他答案之一。我想这样做,使用创建的列表是不同的对象(即不同的
id()
):相关问题 更多 >
编程相关推荐