上下文:我需要随机删除一些数字列表中的一些精确元素,提取一些随机索引并将它们保存在一个名为aleaindex的集合中(完成,它可以正常工作,感谢一些 SO 用户的帮助)。现在,我想用新的、最终更短的列表 newa、newb等替换旧列表a、b等。这是函数:
def myfunction(N, other_parameters, a, b, c):
...
while (...):
aleaindex.add(random.randint(..., ...))
...
new_a = [v for i, v in enumerate(a) if i not in aleaindex]
while a: a.pop()
a = new_a[:]
...
对于其他列表b,c等,依此类推。
问题:该函数似乎在模块内正确修改了它们(通过打印检查),但是当我在模块外打印修改后的列表时,即在“主”文件中,列表就像它们没有修改一样。我哪里错了?