所以我正在做一个项目,这段代码很有趣。我想要一个函数,它接受一个列表 (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
最佳答案
为了在 list1
中制作 list2
的副本,您应该这样做:
list2 = list1[:]
但请注意,使用
list2.remove(list2[y])
会更改 list2
,因此还会移动更多索引。我建议你的循环的这个替代方案:list2 = [x for x in list1 if x[2] != 0]
关于python - 变量改变自身?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18844336/