列表und中的Python列表

2024-04-25 17:39:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个程序,它将执行一些操作,如添加、插入、弹出一个数字列表。 我还需要做一个“撤消”函数,为此我考虑在列表中列出一个列表,以便在每一步中保存我的列表,但是我的测试不起作用。代码如下:

def backup(l):
        lbackup.append(list(l))

<;--在这里,我通过调用此函数保存每一步的列表

^{pr2}$

我的测试:

def testUndo():
    add(lista, 1)
    backup(lista)
    add(lista, 2)
    backup(lista)
    add(lista,111111)
    print(lbackup)
    print(lista)
    undo(lista)
    print(lista)
    print(lbackup)

所以我检查了Undo函数的内部,它工作了!它实际上把我的列表的值改成了我想要的值,但是一旦它离开函数,在测试中撤消后得到打印。。。它又有相同的值。我知道列表是可变的,这可能是个问题,但我能做些什么吗?对不起,如果我不够干净的话。在


Tags: 函数代码lt程序add列表def数字
1条回答
网友
1楼 · 发布于 2024-04-25 17:39:37

当您调用undo(lista)时,undo中的l可能与{}相同,但是分配给l不会改变{}。如果您改为使用undo返回l,并将undo返回的值赋给list,那么这将使您看起来想要进行更改。在

相关问题 更多 >