python:两个嵌套列表中值的乘积之和

2024-09-30 05:25:25 发布

您现在位置:Python中文网/ 问答频道 /正文

  1. 我想要两个嵌套列表的值的乘积和(sop)。在
  2. 每次迭代后,将第二个列表向左移动一个。在
  3. 将每个sop的结果存储在列表中

我有两个清单:

   List1 = [[A,1],[B,2],[C,3]]
   List2 = [[A,4],[B,5],[C,6]]

我期待着:

^{pr2}$

结果列表应显示以下内容:

  resultlist = [32,29,29]

我不知道如何用python编写这个代码,有人能帮我吗?在


Tags: 代码列表乘积list2list1pr2resultlistsop
2条回答

您应该使用一个变量(offset)来确定B的旋转量,而不是物理地移动列表。索引上的模运算可以用来模拟循环列表。在

def products(A, B):
    out = []
    n = len(A)
    for offset in range(n):
        out.append(sum( A[i] * B[ (i + offset) % n ] for i in range(n)))
    return out

假设输入是数字数组,例如products([1,2,3],[4,5,6])

您可以itertools.cycle查看列表2,在每个循环结束时跳过一个:

from itertools import cycle

List1 = [['A',1],['B',2],['C',3]]
List2 = cycle([['A',4],['B',5],['C',6]])

resultlist = []
for _ in List1:
    resultlist.append(sum(a[1]*b[1] for a,b in zip(List1, List2)))
    next(List2)   # skip one of the cycle
print(resultlist)

输出:

^{pr2}$

相关问题 更多 >

    热门问题