是否可以创建列表的副本,使得copt的每个元素与原始元素的每个元素都无关?
e.g
t = [1,2,3,4,5]
然后 (t的副本)[0]是t [0] 返回False
对于我尝试过的所有复制功能,似乎都返回True。
谢谢!
答案 0 :(得分:1)
在Python中,缓存小整数。因此,当您使用它们时,将不会创建差异整数对象。将使用缓存的对象。这就是为什么在将两个小整数与True
运算符进行比较时得到is
的原因。
如果您只想复制一个数字列表,那么
new_list = old_list[:]
应该足够了。
另请注意,整数对象在Python中是不可变的。所以,你不必担心。
答案 1 :(得分:0)
为此,您可以使用deepcopy
获取不同的数据集:
from copy import deepcopy
b = deepcopy(a)
但请注意,如果您的列表包含ints
,那么您将始终获得True
,因为这两个整数将是相同的。这就是我的意思:http://repl.it/R3J/1
但是,如果您正在处理类似:a = [[1], [2], [3], [4], [5]]
的内容,那么我声明的方法有效:http://repl.it/R3J/2