我正在编写一个def函数,它将接收列表的输入。首先,它将检测该列表中是否有相同的值,如果是,它将把它放到另一个列表中,如果不是,它将把它放到第一个列表中。代码如下所示:
uniqueList = []
leftover = []
def addToList(number):
if any(uniqueList.count(number) > 0 for number in UniqueList):
leftover.append(number)
return leftover
else:
uniqueList.append(number)
return uniqueList
问题是当我运行它时,输入的数字似乎没有保存到列表中,例如,第一个输入是'20',然后输出是[20],表示唯一列表,[]表示剩余。但当我再次输入'20'时,输出仍然是[20]表示唯一列表,而[]表示剩余。为什么会这样
return leftover
和return uniqueList
不复制,而是返回对列表的引用,所以如果列表的内容发生更改,则中的值将更改为where reference。然后,返回这样的列表以使用copy
模块但是,这是shallow copy,如果要复制嵌套对象,请使用
deepcopy
相关问题 更多 >
编程相关推荐