【问题标题】:How to loop over stacks of lists being multiplied in chunks如何遍历成块相乘的列表堆栈
【发布时间】:2022-01-19 04:59:32
【问题描述】:

我有多个列表,例如 x1x2x3,每个列表包含 10 个列表元素(数字)。然后我有另外两个列表,即c_ac_b,它们的长度相同,例如包含 3 个元素。我想将列表中的元素x1x2x3c_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]c_b[index] 的索引就会迭代地改变。我期待您的建议。提前致谢!

【问题讨论】:

    标签: python list loops iterator slice


    【解决方案1】:

    将所有列表放在另一个列表中。然后使用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]]
    

    【讨论】:

      猜你喜欢
      • 2016-08-13
      • 2014-06-05
      • 2011-12-17
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多