首页 > 解决方案 > 引用列表包含可变和不可变元素python

问题描述

我有一个概念上的疑问。我有,

A = [1,2,3,[11,12,13]]
C = list(A)

现在我表演的时候,

C[3] = "hello"

它给出 C 等于[1, 2, 3, 'hello'] 和 A 等于在 [1, 2, 3, [11, 12, 13]]
这里我们看到当我们变异 C 时, A 不会变异。

但是当我这样做时,C[3][0]= "hello" C等于[1, 2, 3, ['hello', 12, 13]] 并且A也等于 [1, 2, 3, ['hello', 12, 13]]

所以,为什么 A 在第一种情况下没有改变,而在第二种情况下它改变了,尽管在两种情况下 C 都引用了 A。
而如果我们做类似的事情D = A,然后如果我们像这样改变 D,D[3] = "hello"那么 D 和 A 都变为
[1, 2, 3, 'hello']

请解释这种行为背后的原因

标签: listreferencepython-3.6

解决方案


推荐阅读