假设我有一个列表[1,2,3,4],我想要的是得到前两对的和并以这种方式打印它们:

[1,2,3,4]
[3,3,4]
[6,4]
[10]

基本上,它应该继续添加列表的前2个元素,然后删除前2个元素,并在开始处插入和,直到列表只包含1个元素。但是我无法打印相同的内容,只能得到:
[1,2,3,4]
[3,3,4]
[3,4]
[3]

这是我的密码:
counter = len(num_arr)

while (counter > 1):
    valHold = (sum(num_arr[:2]))
    del numArr[:2]
    numArr.reverse()
    numArr.append(valHold)
    numArr.reverse()
    print (numArr)
    counter -= 1

我真的很困惑该怎么办。非常感谢你!

最佳答案

只需使用切片替换:

num_arr = [1,2,3,4]
while len(num_arr) >= 2:
    num_arr[:2] = [sum(num_arr[:2])]
    print(num_arr)

08-03 21:35