这是我的问题,我使用字典但我想在更改它之前得到它的副本。像这样,如果它们不同,我可以将字典与现在进行比较。
我这样做:
old_dic = dict(data)
但在我用一个函数更改数据之后就像这样做了
data = play_turn(data)
但之后我想打印old_dic
但它也改变了。当然我没有在函数play_turn
中更改它,我试图只更改数据,然后打印两个,但只更改了数据。
play_turn会对数据进行很多更改。 play_turn函数使船(字典中的键,因为它是游戏)改变方向或改变速度,但每个信息都存储在数据字典中。
在字典中还有一些关键字或某些列表的字典。
如何在old_dic
功能期间更改play_turn
?
答案 0 :(得分:1)
你需要克隆这样的字典
import copy
old_dic_copy = copy.deepcopy(data)
如果要将引用复制到对象
,则需要使用=
要克隆对象时使用.copy
或.deepcopy
然后你可以在更换新的后打印他:)