Python list列表去除元素,不影响遍历

最近有个需求,遍历列表,然后找出里面异常值并过滤掉。

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

如果有其他更好方法 欢迎评论交流。

版权声明:本文《Python list列表去除元素,不影响遍历》为网站老表爱技术作者「oldwatch」的原创文章,请联系微信:pythonbrief 获取转载权限,或者提问交流。
原文链接:https://python-brief.com/88.html
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇