Python——用for循环删除列表中的元素

Posted 回忆唯U你

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python——用for循环删除列表中的元素相关的知识,希望对你有一定的参考价值。

  for运行过程中会有一个指针来记录当前循环的元素是哪一个,一开始这个指针指向第0个元素,然后获取它,接着删除第0个元素,这时候,原来是第1个的元素会变成第0个,当指针向后移动一次,指向了现在第1个元素,这时原来的第1个元素是现在的第0个元素,所以它在循环删除的过程过程中被跳过了。

  想要实现循环删除,第一种是列表中有几个元素循环几次,使用pop()从后往前删除:

1 s = [11, 22, 33, 44, 55, 66]
2 for i in range(0, len(s)):
3     s.pop()
4 print(s)

  第二种方法是用另一个列表记录你要删除的内容,然后循环删除:

1 s = [11, 22, 33, 44, 55, 66]
2 s_del = []
3 for m in s:
4     s_del.append(m)
5 for i in s_del:
6     s.remove(i)
7 print(s)

  dict中的元素在迭代过程中是不允许删除的,会报错,可将要删除的元素的键保存在一个list中,然后通过循环这个list,删除字典中的数据。

PS:由于删除元素会导致元素的索引改变,所以容易出现问题,尽量不要在循环中直接删除元素,可以把要删除的元素添加到另一个集合中然后再批量删除。

以上是关于Python——用for循环删除列表中的元素的主要内容,如果未能解决你的问题,请参考以下文章

python中for循环删除不全的问题

python循环里的列表怎样添加到循环外

为啥 Python for 循环在遍历列表副本并进行删除时会跳过元素? [复制]

v-for循环出来的元素,实现鼠标放在当前元素,改变样式

python3 list 使用 for 遍历,边循环边删除问题

Python循环列表删除元素问题