gpt4 book ai didi

python - 为什么第一个值发生变化而第二个值没有变化?

转载 作者:行者123 更新时间:2023-12-02 11:44:19 25 4
gpt4 key购买 nike

a = [ 1, 2 ]
b = a
a.append(3)
print(b) # shows [ 1 2 3 ] which means b changed

c = 4
d = c
c = 8
print(d) # shows 4 which means d did not change

为什么 b 改变了,而 d 没有改变? .append 改变了 b 中存储的值,但 c = 8 没有改变 d 中的值

最佳答案

这两个示例并不等效。

通过执行b = a,您告诉b指向a指向的同一个列表。如果您通过 a 更改列表,即使通过 b 内省(introspection),它也会更改。内存中只有一个列表。

在第二个示例中,您正在执行 d = c ,它告诉 d 指向与 c 相同的整数,但随后您告诉c指向另一个整数。 d 不知道这一点,它仍然指向 c 曾经指向的同一个整数。

使用列表与第二个示例的等效示例将是

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

检查这些可视化:

Your first example

Your second example

My example

关于python - 为什么第一个值发生变化而第二个值没有变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59532255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com