Python 创建列表的副本,使列表中的每个元素与原始元素不同?
是否可以创建一份列表副本,使copt的每个元素与原始列表的每个元素都不相关 e、 g 然后 (t的副本)[0]是t[0] 返回False 对于我尝试的所有复制函数,它似乎都返回TruePython 创建列表的副本,使列表中的每个元素与原始元素不同?,python,Python,是否可以创建一份列表副本,使copt的每个元素与原始列表的每个元素都不相关 e、 g 然后 (t的副本)[0]是t[0] 返回False 对于我尝试的所有复制函数,它似乎都返回True 谢谢 为此,您可以使用deepcopy获取不同的数据集: from copy import deepcopy b = deepcopy(a) 但是请注意,如果列表中包含整数,则始终会得到True,因为这两个整数是相同的。我的意思是: 但是,如果您正在处理类似于:a=[[1]、[2]、[3]、[4]、[5
谢谢 为此,您可以使用
deepcopy
获取不同的数据集:
from copy import deepcopy
b = deepcopy(a)
但是请注意,如果列表中包含整数
,则始终会得到True
,因为这两个整数是相同的。我的意思是:
但是,如果您正在处理类似于:
a=[[1]、[2]、[3]、[4]、[5]]
,那么我所述的方法确实有效:在Python中,小整数被缓存。因此,使用它们时,将不会创建差分整数对象。将使用缓存的对象。这就是为什么当您将两个小整数与is
运算符进行比较时,会得到True
如果你只是想复制一份数字列表,那么
new_list = old_list[:]
应该足够了
还要注意,整数对象在Python中是不可变的。因此,您不必太担心。您是否可以包括您尝试过的没有给出预期输出的“复制函数”?我不明白您的意思,复制定义上不等于原始值吗?如果您认为需要两个不同但相等的整数,您可能误解了赋值在Python中是如何工作的,以及如何使用int。您几乎从不需要不同但相等的int。
new_list = old_list[:]