for循环中删除元素
时间: 2024-03-01 14:46:15 浏览: 84
删除循环双向链表中指定元素
5星 · 资源好评率100%
在for循环中删除元素是不安全的,因为这会导致索引错位和ConcurrentModificationException异常。但是,我们可以使用以下两种方法来删除List集合中的元素:
1.使用while循环和迭代器来删除元素。这种方法可以避免ConcurrentModificationException异常。代码如下:
```python
a = [1, 2, 3, 4, 5]
it = iter(a)
while True:
try:
i = next(it)
if i == 3:
it.remove(i)
except StopIteration:
break
print(a) # 输出:[1, 2, 4, 5]
```
2.使用列表推导式来创建一个新的列表,该列表不包含要删除的元素。这种方法不会修改原始列表,而是返回一个新的列表。代码如下:
```python
a = [1, 2, 3, 4, 5]
a = [i for i in a if i != 3]
print(a) # 输出:[1, 2, 4, 5]
```
阅读全文