0

リスト名があります:

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

このように出力したいのですが、1, 3(1+2),6(1+2+3), 10(1+2+3+4), ... どうすればPythonでこれを行うことができますか? 事前に返信ありがとう

4

3 に答える 3

2

Python 3.2+ では、次のように簡単です。

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

ドキュメンテーション

于 2013-04-06T09:50:26.270 に答える
2
total = 0
for i, element in enumerate(my_list):
    total += element
    print "%d (%s)" % (total, '+'.join(my_list[:i+1])
于 2013-04-06T09:52:21.633 に答える
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]
于 2013-04-06T09:54:09.813 に答える