Python 有没有什么方法可以只将列表的值传递给字典,而不传递列表的引用?

Python 有没有什么方法可以只将列表的值传递给字典,而不传递列表的引用?,python,list,dictionary,reference,Python,List,Dictionary,Reference,有没有什么方法可以只将列表的值传递给字典,而不传递列表的引用 *my_list = [1, 2, 3] my_dict = {"list": my_list} print(my_dict["list"]) my_list.pop() print(my_dict["list"])* 目前的输出是: [1, 2, 3] [1,2] 我希望它是: [1, 2, 3] [1,2,3]您应该在字典中使用原始列表的值创建一个新列表,这样当您从“我的列表”弹出时,它就不会发生变化 my_dict = {"l

有没有什么方法可以只将列表的值传递给字典,而不传递列表的引用

*my_list = [1, 2, 3]
my_dict = {"list": my_list}
print(my_dict["list"])
my_list.pop()
print(my_dict["list"])*
目前的输出是: [1, 2, 3] [1,2]

我希望它是: [1, 2, 3]
[1,2,3]

您应该在字典中使用原始列表的值创建一个新列表,这样当您从“我的列表”弹出时,它就不会发生变化

my_dict = {"list": [item for item in my_list]}

在将列表添加到dict之前创建列表副本:

my_dict={'list':list(my_list)}
发生的情况是,
my_dict['list']
指的是与
my_list
相同的值,而不是它的副本,即共享数据。由于
.pop()
以破坏性方式修改列表,因此元素也会丢失在变量中


请参阅,了解复制列表的方法概述,以及按引用传递与按值传递的一般说明。

您可以使用*来解压缩列表