リストを一度に2つに分割して(10回)、各パーティションで操作を実行しようとしています。この操作をリストに対して一度に1:9の比率で実行したいと思います。つまり、リストを10倍に分割し、最初の反復で最初の折りと残りの9で操作を実行し、2番目の反復で2番目の折りと残りの9で操作を実行します。これを行うために、元のリストのコピーを保持し、フォールドの1つを一時変数に割り当て、リストから削除して、残りを2番目のパーティションとして取得することにしました。次に、次の反復のためにリストのコピーをリストに再割り当てします。ただし、コピーとオリジナルはforループ全体で常に同じであるように思われるため、インデックスが範囲外のエラーになります。問題の簡単な例を次に示します。
>>> a = ['a', 'b', 'c', 'd', 'e', 'f']
>>> b = a
>>> b
['a', 'b', 'c', 'd', 'e', 'f']
>>> for i in xrange (len(a)):
del (b [i])
b = a
Traceback (most recent call last):
File "<pyshell#22>", line 2, in <module>
del (b [i])
IndexError: list assignment index out of range
aとbの両方がメモリ内の同じ場所を指しているようで、リストの実際のコンテンツを格納する場所は1つだけです。ここでの問題と、問題を解決する方法を教えてください。前もって感謝します!