data = Data 这句改成data = Data.copy() 就可以了。
修改:加上import copy
然后 data = Data 这句改成data = copy.deepcopy(Data)
非常抱歉,第一次看的时候没注意到是两层的list
具体原因的话是默认情况下python对list dict 以及用类创建的对象的复制并不是复制它们所有的数据,依我从C++过来的感觉,只是复制了指向数据的指针。
例如:a = 1
b = a
b += 1 #a不会被修改
但是 a = [1, 2, 3]
b = a
b[0] = 4 #会把a也给修改
所以我第一次提议用Data.copy()来复制完整的列表,但是没注意到列表有两层,这样只能复制外层。所以要换成深拷贝。
我并没有仔细学过python语法,很多是通过C++理解的,可能讲不太清楚。忘记在哪里看到过相关讲解了。
追问好像有点明白了,多谢!
本回答被提问者采纳