添加列表的每个元素,然后scucesscess打印它们

时间:2013-04-06 09:47:13

标签: python

我有一个列表名称:

my_list = [1,2,3,4,5,6]

我想输出看起来像这样,1, 3(1+2),6(1+2+3), 10(1+2+3+4), ... 我怎么能在python中做到这一点?感谢您提前回复

3 个答案:

答案 0 :(得分:2)

在Python 3.2+中,它就像这样简单:

>>> from itertools import accumulate
>>> nums = [1,2,3,4,5,6]
>>> list(accumulate(nums))
[1, 3, 6, 10, 15, 21]

Documentation

答案 1 :(得分:2)

total = 0
for i, element in enumerate(my_list):
    total += element
    print "%d (%s)" % (total, '+'.join(my_list[:i+1])

答案 2 :(得分:1)

试试这个单行:

b = [sum(a[:i+1]) for i, x in enumerate(a)]

这不是超级高效的(这是轻描淡写的),因为你要一次又一次地对所有元素进行求和......

要获得更有效的解决方案,您可以执行以下操作:

result = []

for i, current in enumerate(a):
    if result:
        last = result[i - 1]
    else:
        last = 0
    result.append(last + current)

print(result)
>> [1, 3, 6, 10, 15, 21]