Python 如何在具有特定顺序的变长列表中获得多个和?

Python 如何在具有特定顺序的变长列表中获得多个和?,python,python-3.x,Python,Python 3.x,我的问题: 2 + 1 = 3 2 + 1 + 5 = 8 2 + 1 + 5 + 3 = 11 1 + 5 = 6 1 + 5 + 3 = 9 5 + 3 = 8 2 + 4 = 6 2 + 4 + 8 = 14 4 + 8 = 12 我有一份清单。这些列表长度不同,例如[[2,1,5,3],[2,4,8] 对于每个列表中的每个项目,我需要打印下一个列表项目的总和,然后是下两个列表项目,直到我打印所有列表项目的总和。然后我移动到第二个列表项目,并执行相同的操作,直到我到达最后一个列表项目 我

我的问题:

2 + 1 = 3
2 + 1 + 5 = 8
2 + 1 + 5 + 3 = 11
1 + 5 = 6
1 + 5 + 3 = 9
5 + 3 = 8
2 + 4 = 6
2 + 4 + 8 = 14
4 + 8 = 12
我有一份清单。这些列表长度不同,例如
[[2,1,5,3],[2,4,8]

对于每个列表中的每个项目,我需要打印下一个列表项目的总和,然后是下两个列表项目,直到我打印所有列表项目的总和。然后我移动到第二个列表项目,并执行相同的操作,直到我到达最后一个列表项目

我需要的输出是:

我想要的输出:

2 + 1 = 3
2 + 1 + 5 = 8
2 + 1 + 5 + 3 = 11
1 + 5 = 6
1 + 5 + 3 = 9
5 + 3 = 8
2 + 4 = 6
2 + 4 + 8 = 14
4 + 8 = 12
我的(坏)尝试:

2 + 1 = 3
2 + 1 + 5 = 8
2 + 1 + 5 + 3 = 11
1 + 5 = 6
1 + 5 + 3 = 9
5 + 3 = 8
2 + 4 = 6
2 + 4 + 8 = 14
4 + 8 = 12
我已经试了几个小时了,但还没有接近。我正在按照下面的代码做一些事情,但是我想知道我是否需要做一个递归函数

for cluster in [[2, 1, 5, 3], [2,4,8]]:
  for trip in cluster:
    for trip_cluster_index in range(len(cluster)):
      if trip != cluster[trip_cluster_index]:
        print(cluster, trip, cluster[trip_cluster_index])
O(n^3)

[3,8,11,6,9,8,6,14,12]

O(n^2)

[3,8,11,6,9,8,6,14,12]

倒O(n^3)


[11,8,3,9,6,8,14,6,12]

这会给你想要的

n = -1
listy =  [[1,1,1],[2,2,2],[3,3,3]]
for l in listy:
    while n < len(listy)-1:

        n +=1
        total = sum(l) + sum(listy[n])
        print(total)
n=-1
listy=[[1,1,1],[2,2,2],[3,3,3]]
对于listy中的l:
而n
我假设您的输出必须包含整个方程式,这就是我得出的结论:

L=[[2, 1, 5, 3], [2,4,8]]
for i in L:
    for j in range(len(i)):
        for k in range(j+2, len(i)+1):
            print(' + '.join([str(n) for n in i[j:k]]), '=', sum(i[j:k]))

希望这就是您想要的!

您也可以将这些结果存储在一个列表中。appendHey Jeff,如果我想倒计时怎么办?即输出[11,8,3,9,6,8,14,6,12]。非常感谢。您可以从listy[-1]开始,即[3,3,3]然后用n向下计数。你需要将字符串的长度乘以-1来实现这一点。不确定这是匿名向下投票的原因…谢谢,我将使用这一个。我需要的是,第一个解决方案更简单,但对于非常大的列表来说更慢。嘿,Manuel,如果我想倒计时呢?即输出[11,8,3,9,6,8,14,6,12]。非常感谢。将倒计时添加到解决方案中。嘿,米歇尔,如果我想倒计时呢?即输出[11,8,3,9,6,8,14,6,12]。非常感谢。
L=[[2, 1, 5, 3], [2,4,8]]
for i in L:
    for j in range(len(i)):
        for k in range(j+2, len(i)+1):
            print(' + '.join([str(n) for n in i[j:k]]), '=', sum(i[j:k]))