>>> a = [1, 2, 3, 4, 5, 6]
>>> a = [1, 2, 3, 4, 5, 6]
>>> import itertools
>>> list(itertools.accumulate(a))
[1, 3, 6, 10, 15, 21]
しかし、あなたはそれをバイナリ操作を渡し、累積製品を行う、例えば可能性:
>>> list(itertools.accumulate(a ,lambda x, y: x*y))
いっそのこと、operator
のパワーを活用モジュール:
>>> list(itertools.accumulate(a, operator.add)) #cumulative sum
[1, 3, 6, 10, 15, 21]
>>> list(itertools.accumulate(a, operator.mul)) #cumulative product
[1, 2, 6, 24, 120, 720]
>>> list(itertools.accumulate(a, operator.truediv)) #cumulative quotient
[1, 0.5, 0.16666666666666666, 0.041666666666666664, 0.008333333333333333, 0.001388888888888889]
>>> list(itertools.accumulate(a, operator.floordiv)) #cumulative floor div
[1, 0, 0, 0, 0, 0]
累積値で別の変数を保持する必要があります。入力リストの前の要素からだけ計算することはできません。 –
おそらく、現在の要素を 'a'から取り出し、前の要素を' h'から取り出し、合計を集めることを意図していました。しかし、それは 'h'が空であるアルゴリズムを起動するという明確な問題を持っています。したがって、パウロが言及したように別の変数を保持するのが最も簡単な方法です。 –
いいえ、 "構造"は円形ではありませんが、*負のインデックスは背面からのインデックス*です。私。 'my_list [len(my_list) - 1] == my_list [-1]' –