for i in range(1, len(A)): A[i] = A[i-1] + A[i]
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 に答える