[英]Why does the original list change when I change the copied list (PYTHON)
So I have this simple code:所以我有这个简单的代码:
list = [[1,2],[4,5]]
list1 = list.copy()
for i in range(len(list)):
for j in range(len(list[i])):
print(i,j, ":", list[i][j], "and", j,i, ":", list1[j][i])
nr = input('Line {0}, Column{1}: ' .format(i+1, j+1) )
list[i][j] = nr
list1[j][i] = nr
print(list,list1)
print(list1, list)
If I want the final result of the variable list to be the following matrix: [[1,2],[3,4]]
, so the variable list1 should be the transposed matrix: [[1,3],[2,4]]
.如果我希望变量列表的最终结果是以下矩阵:
[[1,2],[3,4]]
,那么变量list1应该是转置矩阵: [[1,3],[2,4]]
。 Somehow the result is this: [['1', '3'], ['3', '4']] [['1', '3'], ['3', '4']]
.结果是这样的:
[['1', '3'], ['3', '4']] [['1', '3'], ['3', '4']]
。 Please someone help me.请有人帮助我。 Thanks and have a good weekend
谢谢,周末愉快
you should use copy.deepcopy
.你应该使用
copy.deepcopy
。
If your list is a list of integers or floats, copy
would suffice but since you have list of lists, you need to recursively copy the elements inside the lists.如果您的列表是整数或浮点数列表,则
copy
就足够了,但是由于您有列表列表,因此您需要递归地复制列表中的元素。
You can find more detailed answer here: What is the difference between shallow copy, deepcopy and normal assignment operation?你可以在这里找到更详细的答案: 浅拷贝、深拷贝和普通赋值操作有什么区别?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.