所以我正在研究一个项目,这段代码很有趣。我想要一个能够获取列表(list1)的函数,制作该列表的副本(list2)并仅从副本中修剪某些对象。我只编写了代码来从副本中减去项目,原来也一直在变化。(?)我只是不明白如何从中减去原始列表(list1)。代码在下面,提前感谢您的帮助..
def copyandtrim(w, x, y, z):
list1 = [w, x, y ,z]
list2 = []
list2 = (list1)
testlen = (len(list2))
for y in range(testlen - 1):
if (list2[y])[2] == 0:
list2.remove(list2[y])
else:
pass
答案 0 :(得分:5)
要在list1
中制作list2
的副本,您应该这样做:
list2 = list1[:]
但请注意,使用list2.remove(list2[y])
更改list2
,以便进一步转换其他索引。我会建议你的循环替代方案:
list2 = [x for x in list1 if x[2] != 0]
答案 1 :(得分:2)
list2 = list1
实际上并不执行list
对象的深层复制。它只是指向list2
以引用相同的列表对象。要获得副本,最简单的方法是使用:
list2 = list1[:]
答案 2 :(得分:1)
要在python中复制列表,您应该使用切片操作:
list2 = list1[:]