我只是觉得我已经把它记下来了,因为我已经看过了 - 对这种行为得到确认会很好; 我确实看到如何通过引用传递变量?,但我不确定如何在这种情况下解释它.
假设我们有这两个数组/列表:
a = [1, 2, 3, 4]
b = [-1, a, -100, a[2], -1]
Run Code Online (Sandbox Code Playgroud)
口译员最初将其视为:
>>> print(a)
[1, 2, 3, 4]
>>> print(b)
[-1, [1, 2, 3, 4], -100, 3, -1]
Run Code Online (Sandbox Code Playgroud)
现在让我们改变a[2],看看会发生什么:
>>> print(a)
[1, 2, 55, 4]
>>> print(b)
[-1, [1, 2, 55, 4], -100, 3, -1]
Run Code Online (Sandbox Code Playgroud)
所以,无论列表b具有的参考名单 a,该值已经更新-但只要b有一个(一个引用?)被初始化从元素列表a,似乎是Python的扩展在初始化时的值,这样存储的元素值(不是通过引用),所以它的值显然不会更新.
基本上,我找到了一个用例,在这里可以方便地定义eg b = [-1 a[2] -1],然后更新a[2],并且能够计算出a[2]获取(在这种情况下)的值时将发出的最新值b[1] …