为什么弹出/删除/附加列表“ var”的项会更改列表“ final”的内容?
根据我的理解,“ final”绝对不能由对“ var”使用的任何操作更改。
import re
list = ['ABC', 'ACB']
aa = list[0]
aa = re.findall('.',aa)
aa.append (aa[0])
aa.append(aa[1])
i = 0
final = []
circle = []
while i < len(list):
circle = list[i]
circle = re.findall('.',circle)
circle.append(circle[0])
circle.append(circle[1])
final.append(circle)
i = i + 1
print(final)
var = final[0]
print(var)
print(final)
var.append(var[2])
print(var)
print(final)
var.pop(0)
print(var)
print(final)
输出:
[['A', 'B', 'C', 'A', 'B'], ['A', 'C', 'B', 'A', 'C']]
['A', 'B', 'C', 'A', 'B']
[['A', 'B', 'C', 'A', 'B'], ['A', 'C', 'B', 'A', 'C']]
['A', 'B', 'C', 'A', 'B', 'C']
[['A', 'B', 'C', 'A', 'B', 'C'], ['A', 'C', 'B', 'A', 'C']]
['B', 'C', 'A', 'B', 'C']
[['B', 'C', 'A', 'B', 'C'], ['A', 'C', 'B', 'A', 'C']]
所以输出的最后两行应该是:
['B', 'C', 'A', 'B', 'C']
[['A', 'B', 'C', 'A', 'B'], ['A', 'C', 'B', 'A', 'C']]
根据我的理解。为什么不是这种情况?
感谢罗宾