创建列表的副本,使列表中的每个元素都与原始元素不同?

2024-09-28 22:17:44 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有可能创建一个列表的副本,使得copt的每个元素与原始列表的每个元素都不相关?你知道吗

例如

t = [1,2,3,4,5]

那么 (t)[0]的副本是t[0] 返回False

我尝试过的所有复制函数似乎都返回True。你知道吗

谢谢!你知道吗


Tags: 函数falsetrue元素列表副本copt
2条回答

在Python中,小整数被缓存。因此,使用它们时,不会创建差分整数对象。将使用缓存的对象。这就是为什么用is运算符比较两个小整数时得到True。你知道吗

如果你只是想复制一份数字列表

new_list = old_list[:]

应该足够了。你知道吗

还要注意,integer对象在Python中是不可变的。所以,你不用太担心。你知道吗

为此,您可以使用deepcopy获取不同的数据集:

from copy import deepcopy    
b = deepcopy(a)

但是请注意,如果您的列表包含ints,那么您将始终得到True,因为这两个int是相同的。我的意思是:http://repl.it/R3J/1

但是,如果您正在处理类似于:a = [[1], [2], [3], [4], [5]]的事情,那么我所说的方法确实有效:http://repl.it/R3J/2

相关问题 更多 >