python在迭代列表的同时,remove列表中的元素?

python在迭代列表的同时,remove列表中的元素?

python">foo = ['a', 'e', 'd']

for i in foo:

foo.remove('a')

Traceback (most recent call last):

File "test.py", line 4, in <module>

foo.remove('a')

ValueError: list.remove(x): x not in list

这里foo.remove('a')为什么会出错?


回答:

首先,尽量不要在循环中删除元素,会使元素下标移动容易造成问题。
此外,这这个问题,在其第一次循环的时候remove已经移除了list中的'a',此时list=['e','d'],所以你第二次循环remove找不到元素'a'自然会报错,请自行Debug查看过程。


回答:

在循环中删除元素不是一个好的做法。
如果要删除列表中的元素,可以考虑先确定有多少个要删除的元素,
再根据这个值,多次调用remove。

以上是 python在迭代列表的同时,remove列表中的元素? 的全部内容, 来源链接: utcz.com/a/163457.html

回到顶部