Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:对象引用(列表)_Python - Fatal编程技术网

Python:对象引用(列表)

Python:对象引用(列表),python,Python,为什么结果是(--为什么10改变了原始对象?) 因为,a[:]创建了一个浅拷贝。新列表中的对象与从中复制列表的对象相同a[1][0]=10更改两个对象所引用的列表。在这种情况下,您可能希望a中的sub类似于b=[sub[:]或者您可以使用b=copy.deepcopy(a)。请参阅复制模块。 a = [[1], [2, 3], [4, 5, 6]] b = a[:] a[0] = "x" a[1][0] = 10 print(a) print(b) ['x', [10,

为什么结果是(--为什么10改变了原始对象?)


因为,
a[:]
创建了一个浅拷贝。新列表中的对象与从中复制列表的对象相同
a[1][0]=10
更改两个对象所引用的列表。在这种情况下,您可能希望a中的sub类似于
b=[sub[:]或者您可以使用
b=copy.deepcopy(a)
。请参阅
复制
模块。
a = [[1], [2, 3], [4, 5, 6]]
b = a[:]

a[0] = "x"
a[1][0] = 10
print(a)
print(b)
['x', [10, 3], [4, 5, 6]]

[[1], [10, 3], [4, 5, 6]]