0

for i in range(1, len(A)): A[i] = A[i-1] + A[i]

4

5 に答える 5

2

リスト内包表記では割り当てが許可されていないため、これを行うことはできません。

簡単なジェネレーター関数を使用できます。

def func(lis):
    yield lis[0]
    for i,x in enumerate(lis[1:],1):
        lis[i] = lis[i-1] + x
        yield lis[i]

>>> A = [1, 2, 3, 4, 5, 6, 7]
>>> list(func(A))
[1, 3, 6, 10, 15, 21, 28]
于 2013-06-05T04:49:39.820 に答える
0

1行のソリューションの使用reduce

>>> the_list = [1,2,3,4,5]
>>> reduce(lambda result, x: result+[result[-1] + x] ,the_list, [0])[1:]
[1, 3, 6, 10, 15]
于 2013-06-05T05:22:08.747 に答える