为什么 [a,b] 和 a+b 在我的 Python 代码中使用 APPEND 命令有不同的值?

Why [a,b] and a+b have different values with APPEND command in My Paython Code?

我是Python的新手..但我真的很困惑这个问题...

最后3行的打印结果:

['John', 'Philiph', 'Derek', 'Melanie', 'Romy', 'Andy', 44]

[1, 2, 3, 4, 5, 6, 'John', 'Philiph', 'Derek', 'Melanie', 'Romy', 'Andy']

[[1, 2, 3, 4, 5, 6], ['John', 'Philiph', 'Derek', 'Melanie', 'Romy' , 'Andy', 44]]

**问题:** 44 在 t 但是 ---> 为什么 44 不在 x

代码:

z=[1,2,3,4,5,6]
h=['John', 'Philiph', 'Derek', 'Melanie', 'Romy', 'Andy']
x=z+h
t=[z,h]
#print(x)
#print(t)
h.append(44)
print(h)
print(x)
print(t)

z+h 将创建包含 h 和 z 值的单个列表,同时 [z,h] 创建两个列表 h 和 z

的列表
t=[z,h]

这会将对 zh 的引用放入列表中,并为列表 t 命名。没有制作数据副本。

x=z+h

这将创建一个新列表,该列表是添加 zh 的结果,并将该新列表保存到 x 中。影响h不影响x,因为x不包含原来的h;它包含对持有的元素 h 的引用的副本。对 h 所做的更改可以在 t 中看到,因为 t 包含对原始 h.

的引用