私はリストのリストをいくつか持っていて、コード全体を通してリスト内の項目を編集し、後ですべてを初期値に戻したいと考えています。ここでPythonはリスト内の項目を初期値にリセットします
は例です:
list_a = [0, 1, 2]
list_b = [list_a, 3, 4]
list_c = [6, 7]
list_d = [8, 9]
lists = [0, list_b, 5, list_c, list_d]
#As you can see, lists are of varying length, and sometimes nested multiple times.
print(lists)
Out>>> [0, [[0, 1, 2], 3, 4], 5, [6, 7], [8, 9]]
#Currently, I'm saving the important items of "lists" in the first item, like this:
lists[0] = lists[1:]
#Then I edit the values of various items, like this:
lists[1][0][2] = 0
lists[2] = 0
lists[3][1] = 0
lists[4][1] = 0
print(lists[1:])
Out>>> [[[0, 1, 0], 3, 4], 0, [6, 0], [8, 0]]
#Then I try to reset those values to the originals that I stored in lists[0]
lists[1:] = lists[0]
print(lists[1:])
Out>>> [[[0, 1, 0], 3, 4], 5, [6, 0], [8, 0]]
あなたが見ることができるように、この方法は、リストのために働く[2]という項目が値ではなく、ネストされたリストであるため。リスト[0]でコピーを作成するのに[1:]を使用しても、ネストされたリストへの参照はコピーされたもので、そのネストされたリストの値ではないようです。
リスト[1:]の値をリスト[0]に正しくコピーしてから、同じインデックスを両方のコピーで参照しなくても元に戻すにはどうすればよいですか?
おそらく、リスト内のすべてのアイテムを元の値に戻して、同じ意図した結果を達成する簡単な方法がありますか?