我有一个Python代码,可以创建一个二维数组,处理并将结果保存在数组中,如:
dimension = [32, 64]
partition = [10, 20, 30, 40]
row = len(dimension)
column = len(partition)
qpi_partition = [[0 for x in range(column)] for y in range(row)]
for d in dimension:
for i, j in enumerate(qpi_partition):
*do_process*
for p in partition:
*result = do_process*
qpi_partition[i].append(result)
输出结果为:
[[0, 0, 0, 0, 0.25, 0.32, 0.54, 0.64, 0.78, 0.12, 0.55, 0.21],
[0, 0, 0, 0, 0.25, 0.32, 0.54, 0.64, 0.78, 0.12, 0.55, 0.21]]
但实际上,我想要的是这样的,其中每个维度都有四个分区结果,如:
[[0.25, 0.32, 0.54, 0.64],
[0.78, 0.12, 0.55, 0.21]]
我的问题是:
(1)如何创建一个二维数组并用结果填充它(不用在其中初始化零)
(2)我做错了哪个循环?
提前谢谢
答案 0 :(得分:1)
Python var list1 = [];
$("#ListVideo td div a").each((index, element) => {
list1.push($(element).attr("href"));
});
console.log(list1);
不是数组;这是一个清单。它是动态大小的。
[]
函数正如它所说的那样;它扩展了列表以添加新项目。
因此,您正在使用0&s初始化内部列表,然后扩展以添加结果。使用索引来覆盖 0,或者不要那样初始化你的列表(只创建空列表)。
您的问题并不完全清楚,但看起来您希望append
矩阵中的每个条目(r,c)
都与某个函数qpi_partition
的结果相对应,其中f(x,y)
为x
,dimension[r]
为y
。换句话说,您从partition[c]
和dimension
获取每对元素,计算该对上的某些函数,并将其存储在结果结构中。
要做到这一点,你的结果结构中每个维度应该有一个循环,并且由于你的输入是一维的,你的二元函数成对映射将产生一个二维结构(根据标题,你已经意识到,即使你不会这样说的话)。但你有三个循环!
我认为,核心问题是您正在迭代结果结构(partition
)和您的输入向量。实际上,您应该遍历 输入或输出。
这里只是一个版本映射输入:
qpi_partition