最近有个需求,遍历列表,然后找出里面异常值并过滤掉。
python列表元素移除很简单:
# list.remove(value)
list1 = [11,22,33,44]
list1.remove(22)
但是直接remove会影响元素后续遍历(len变小了,继续按以前len遍历会报错)。
比较简单的方法是遍历的时候不直接remove掉不符合的元素,而是将符合的元素保存到另一个列表。
list1 = [11,22,33,44]
list2 = []
for i in range(len(list1)):
if list1[i] < 40:
list2.append(list1[i])
pritn(list2)
或者,我们提前拷贝下列表,一个遍历,一个remove。
list1 = [11,22,33,44]
list2 = list1.copy()
for i in range(len(list1)):
if list1[i] < 40:
list2.remove(list1[i])
pritn(list2)
其他列表删除相关操作:
# 根据元素索引删除
list1.pop(index)
# 根据元素索引删除(可以删除多个值)
del list1[i:j]
# 清空列表
list1.clear()
del list1[:]
# 删除列表变量
del list1
如果有其他更好方法 欢迎评论交流。