[英]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.