如何遍历成块相乘的列表堆栈
How to loop over stacks of lists being multiplied in chunks
我有多个列表,例如 x1
、x2
和 x3
,每个列表包含 10 个列表元素(数字)。然后我有另外两个列表,即 c_a
和 c_b
,它们的长度相等,例如包含 3 个元素。我想将列表 x1
、x2
和 x3
的元素与 c_a
和 c_b
中的元素相乘,如下所示;
x_1[0:3]=[i*c_a[0]**2 for i in x_1[0:3]]
x_1[3:6]=[i*c_b[0]**2 for i in x_1[3:6]]
x_1[6:10]=[i*c_a[0]*c_b[0] for i in x_1[6:10]]
我现在希望将这个乘法嵌入一个循环中,这样 x1
、x2
和 x3
的名称以及 c_a[index]
和 [=25= 的索引] 迭代改变。我期待着您的建议。提前致谢!
将所有列表放在另一个列表中。然后使用 zip()
循环遍历此列表以及列表 c_a
、c_b
和 c_b_Ni
.
for l, a, Ni, b in zip([x1, x2, x3], c_a, c_b_Ni, c_b):
l[0:3]=[i*a**2 for i in l[0:3]]
l[3:6]=[i*Ni**2 for i in l[3:6]]
l[6:10]=[i*a*b for i in l[6:10]]
我有多个列表,例如 x1
、x2
和 x3
,每个列表包含 10 个列表元素(数字)。然后我有另外两个列表,即 c_a
和 c_b
,它们的长度相等,例如包含 3 个元素。我想将列表 x1
、x2
和 x3
的元素与 c_a
和 c_b
中的元素相乘,如下所示;
x_1[0:3]=[i*c_a[0]**2 for i in x_1[0:3]]
x_1[3:6]=[i*c_b[0]**2 for i in x_1[3:6]]
x_1[6:10]=[i*c_a[0]*c_b[0] for i in x_1[6:10]]
我现在希望将这个乘法嵌入一个循环中,这样 x1
、x2
和 x3
的名称以及 c_a[index]
和 [=25= 的索引] 迭代改变。我期待着您的建议。提前致谢!
将所有列表放在另一个列表中。然后使用 zip()
循环遍历此列表以及列表 c_a
、c_b
和 c_b_Ni
.
for l, a, Ni, b in zip([x1, x2, x3], c_a, c_b_Ni, c_b):
l[0:3]=[i*a**2 for i in l[0:3]]
l[3:6]=[i*Ni**2 for i in l[3:6]]
l[6:10]=[i*a*b for i in l[6:10]]