在Python中,当你将一个可变类型(例如列表)赋值给一个变量,并将该变量传递给另一个变量时,它们实际上共享同一个对象。
这意味着如果你修改其中一个变量的列表,另一个变量中的列表也会发生变化,因为它们引用同一个对象。
例如,假设有一个字典my_dict,其中包含一个键为my_list的列表:
my_dict = {'my_list': [1, 2, 3]}
然后你将该列表赋值给另一个变量my_var:
my_var = my_dict['my_list']
现在,my_dict['my_list']和my_var引用同一个列表对象。如果你修改my_var的列表,例如添加一个元素:
my_var.append(4)
则my_dict['my_list']的列表也会相应地改变,因为它们实际上是同一个列表对象。
如果你想创建一个新的列表对象,而不是与原始列表对象共享引用,则可以使用切片或复制操作符(例如[:]或copy())创建一个副本,例如:
my_var = my_dict['my_list'][:] # 使用切片创建副本
# 或者
my_var = my_dict['my_list'].copy() # 使用copy()方法创建副本
这将创建一个新的列表对象,它包含原始列表的副本,而不是与原始列表共享引用。