Python大列表对比异常:无法检测被移除元素item#1
问题原因分析
问题出在原列表中存在多个item#1元素:
当列表有1700+元素时,
generateList()返回的列表里item#1不止出现一次。old.remove("item#1")只会删掉列表里第一个匹配的item#1,剩下的item#1还留在old里。遍历new时,判断item not in old,因为old里还有item#1,这个条件永远不成立,所以没输出。切片取前5个元素时,刚好前5个里
item#1只出现一次。old.remove("item#1")把仅有的这个item#1删掉后,old里就没有item#1了。遍历new时,item#1不在old中,条件成立,就能输出预期结果。
你可以加一行print(old.count("item#1"))验证:大列表场景下,移除后这个数会大于0;切片场景下,移除后等于0。
内容的提问来源于stack exchange,提问作者Guy zvi
相关产品推荐
相关产品推荐

