Python一维列表去重代码仅对部分元素生效,求指出代码bug
代码Bug说明
- 遍历列表的同时直接删除原列表的元素:Python遍历列表时是按索引顺序逐个取值的,当你删除某一位置的元素后,列表长度会缩短,该位置之后的所有元素都会向前移动一位,下一轮遍历会直接取下一个索引位置的元素,导致刚前移到被删位置的元素被跳过,连续重复的元素就会出现漏判,你遇到的5、8重复项未被移除就是这个原因导致的。
- 初始比较值的设置存在逻辑缺陷:你将
value的初始值设为0,若待处理的列表中存在小于等于0的元素,排序后的第一个元素会被误判为和初始值相等而被错误删除,当前案例中排序后首个元素为1所以未触发该问题,但代码本身的通用性存在问题。
内容的提问来源于stack exchange,提问作者junayed_i_said
相关产品推荐
相关产品推荐

