簡體   English   中英

列表撤消中的Python列表

[英]Python list in list undo

我正在制作一個程序,該程序將執行一些操作,例如加,插入,彈出數字列表。 我還必須做一個“撤消”功能,為此,我考慮在列表中創建一個列表以保存列表的每一步,但是我的測試無法正常工作。 這是代碼:

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

<-在這里,我通過調用此函數來保存列表的每一步

> def undo(l):
>     l=lbackup[len(lbackup)-1] # here I give my list the previous list
>     del lbackup[len(lbackup)-1]  # here I delete the sublist from the history

我的測試:

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(lista)undo內部的l可能與lista相同,但分配給l不會改變lista 相反,如果你不得不undo回報l ,並指定返回的值undo回到list ,這將使你似乎想改變。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM