在Python中,当你执行`b = a`时,你实际上是在创建一个新的变量`b`,这个变量引用的是与`a`相同的对象。在Python中,列表是可变对象,这意味着你可以改变列表的内容而不会影响列表的引用。
让我们通过一个例子来解释这个概念:
```python
a = [1, 2, 3] 创建一个列表并赋值给变量a
b = a 创建一个新的变量b,它引用与a相同的列表对象
print(a) 输出: [1, 2, 3]
print(b) 输出: [1, 2, 3]
b = 10 改变b引用的列表的第一个元素
print(a) 输出: [10, 2, 3],因为b引用的列表被改变了
在这个例子中,你可以看到,通过改变`b`引用的列表的内容,`a`引用的列表的内容也被改变了,因为它们指向的是同一个对象。
如果你想要`a`和`b`指向不同的对象(即使这些对象具有相同的值),你需要创建一个新的列表,如下所示:
```python
a = [1, 2, 3] 创建一个列表并赋值给变量a
b = a.copy() 创建一个新的列表,它是a的一个副本
b = 10 改变b引用的列表的第一个元素
print(a) 输出: [1, 2, 3],因为a引用的列表没有被改变
print(b) 输出: [10, 2, 3],因为b引用了一个新的列表对象
在这个修改后的例子中,`a`和`b`现在指向不同的列表对象,所以改变`b`不会影响`a`