python

时间:2017-11-11 11:01:17

标签: python

嘿,我正在尝试将 game_list 的每次更改备份到 game_list_bkp 。 我希望我可以将while循环中发生的每个更改附加到game_list_bkp。但如果循环运行4次,它只需将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]]

这样的结果
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]]

1 个答案:

答案 0 :(得分:1)

每次都需要附加一个game_list副本。您可以通过附加game_list[:]代替game_list

来实现
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