对新变量的Python分配会更改原始列表中的值

问题描述

示例1

a = [1,[2,3],[4]]
b = a[1]
print(b)

Output:
[2,3]    


b[1] = 88
print(a)
print(b)


Output:
[1,88],[4]]
[2,88]

示例2

a = [1,[4]]
b = a[0]
print(b)

Output:
1


b = 88
print(a)
print(b)

Output:
[1,[4]]
88

示例3

a = [1,[4]]
b = a[2]
print(b)

Output: 
[4]

b = 88
print(a)
print(b)

Output:
[1,[4]]
88

示例4

a = [1,[4]]
b = a[2]
print(b)

Output:
[4]


b[0] = 88
print(a)
print(b)

Output:
[1,[88]]
[88]

因此,当 a 是列表列表,并且为 b 分配了列表值时, b 中值的更改将更改原始值清单。但是,仅为 b 分配一个常规值时, b 中的值更改不会更改原始列表。然后,在最后两个示例中,即使 b 是列表,但如果我们为其分配值,则它不会更改原始列表。为什么会这样呢?哪些类型的结构具有此属性,其中某些辅助变量中的赋值会更改原始变量?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)