如何遍历成块相乘的列表堆栈

How to loop over stacks of lists being multiplied in chunks

我有多个列表,例如 x1x2x3,每个列表包含 10 个列表元素(数字)。然后我有另外两个列表,即 c_ac_b,它们的长度相等,例如包含 3 个元素。我想将列表 x1x2x3 的元素与 c_ac_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]]

我现在希望将这个乘法嵌入一个循环中,这样 x1x2x3 的名称以及 c_a[index] 和 [=25= 的索引] 迭代改变。我期待着您的建议。提前致谢!

将所有列表放在另一个列表中。然后使用 zip() 循环遍历此列表以及列表 c_ac_bc_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]]