我只是想既然我已经看到了,我会记下来——如果能得到关于这种行为的确认,那就太好了;我确实看到了如何通过引用传递变量?,但我不确定如何在这种情况下解释它。
假设我们有这两个数组/列表:
a = [1, 2, 3, 4]
b = [-1, a, -100, a[2], -1]
解释器最初将它们视为:
>>> print(a)
[1, 2, 3, 4]
>>> print(b)
[-1, [1, 2, 3, 4], -100, 3, -1]
现在让我们改变一下a[2]
,看看会发生什么:
>>> print(a)
[1, 2, 55, 4]
>>> print(b)
[-1, [1, 2, 55, 4], -100, 3, -1]
因此,只要 listb
有对list a
的引用,值就会被更新——但是无论在哪里b
初始化(引用?)list 中的一个元素a
,Python 似乎在初始化时扩展了该值,因此将元素存储为价值(不是通过引用),所以它的价值显然不会更新。
基本上,我找到了一个用例,可以方便地定义 eg b = [-1 a[2] -1]
,然后 update a[2]
,并且能够计算a[2]
得到 ( 在这种情况下) 的值时将发出的最新值b[1]
。有没有办法在 Python 中做到这一点,而不必这样做b = [-1 a -1]
,然后阅读b[1][2]
(我想a[2]
通过使用来获得价值b[1]
)?