a=[10, 23, 56, [78]]
b=list(a)
a[3][0]=95
a[1]=34
print(b)
# why is the out this [10, 23, 56, [95]] and not this [10, 34, 56, [95]]
>>[10, 23, 56, [95]]
我猜我知道附加是如何工作的,但我无法理解这一点,或者可能是我对附加的知识太浅了
列表a包含3个整数和一个列表。
在
b=list(a)
之后,b
是一个列表(显然),其中包含整数的副本和 a
对索引 3 处原始子列表的引用。
因此:
a[1] = 34
...对 b
没有影响鉴于:
a[3][0] = 95
...修改 a[3] 和 b[3] 处的列表。请记住,它们是同一件事。你可以通过以下方式证明这一点:
assert id(a[3]) == id(b[3])
你的错误是你在编辑列表a之前定义了列表b(为什么它只显示一半?不知道,python有时会有点奇怪:-])
所以...只要您在修改后仅定义列表 b,它就应该有效。
#User set list
a=[10, 23, 56, [78]]
#Changing the list
a[1]=34
a[3][0]=95
#Puts a inside of a list named "b"
b=list(a)
print(list(b))