我目前正在学习 Python 3.2 版本。
给定两个列表变量,如何区分变量引用的是同一个列表还是两个具有相同值的单独列表。
例如:
>>> foo = [1,2,3,4]
>>> bar = foo
>>> foo.append(5)
>>> foo
[1, 2, 3, 4, 5]
>>> bar
[1, 2, 3, 4, 5]
>>> foo == bar
True
在上面,“foo”和“bar”显然引用了同一个列表。(通过将“5”附加到 foo 并看到该更改也反映在 bar 中来证明)。
现在,让我们定义第三个列表,称为“其他”,具有相同的值:
>>> other = [1,2,3,4,5]
>>> other == foo
True
考虑到这里的比较运算符也返回 True,它们肯定看起来像同一个列表。但是如果我们修改“其他”,我们可以看到它是一个不同的列表,其中一个变量的变化不会影响另一个。
>>> other.append(6)
>>> other == foo
False
>>> other
[1, 2, 3, 4, 5, 6]
>>> foo
[1, 2, 3, 4, 5]
我认为了解两个变量何时是彼此的别名与结构相同是很有用的。但我怀疑我可能误解了该语言的其他基本内容。