ここで、のgame_listの各変更をgame_list_bkpにバックアップしようとしています。 whileループで起こっている各変更をgame_list_bkpに追加できることを期待していました。ループが4回実行されると、同じリストがgame_list_bkpに追加されます。私は[[3, 7, 8, 6], [3, 7, 8, 6], [3, 7, 8, 6], [3, 7, 8, 6]]
のような結果を取得していますが、私は[[3], [3, 7], [3, 7, 8], [3, 7, 8, 6]]
Pythonでwhileループでリストを追加すると問題が発生する
import random
val = True
game_list = []
game_list_bkp = []
usr_input = 1
while usr_input <5:
if usr_input >0:
game_list.append(random.randint(1,9))
game_list_bkp.append(game_list)
print (game_list_bkp)
if usr_input !=0:
usr_input = int(input("Enter:"))
else:
val=False
結果のようになる必要がある
[[3]]
入力します:1
[[3]、[7]、[ 3,7]]
入力:1
[[3、7、8]、[3、7、8]、[3、7、8]
入力:1
[[3、7、8、6]、[ [3,7,8,6]、[3,7,8,6]、[3,7,8,6]
では動作しません
game_list[:]
を追加することによってそれを行うことができます - あなたは、一度にそれのコピーを作成する必要があります(使用list.copy()またはそれのようになめらか) - https://stackoverflow.com/questions/2612802/how-to-clone-or-copy-a-list –