【导语】:在Python中,如果我们想要在遍历一组数据的过程中,对这组数据进行修改,通常会出现许多问题,例如对列表进行上述操作时, 会忽略部分数据;遍历字典时,不能修改数据。本文针对这些问题,提出了多种解决方案。
简介
一、关于列表
1.问题描述
在Python中,如果你试图在遍历一组数据的过程中,对其进行修改,这通常没什么问题。例如:
l = [3, 4, 56, 7, 10, 9, 6, 5]
for i in l:
if not i % 2 == 0:
continue
l.remove(i)
print(l)
上述这段代码遍历了一个包含数字的列表,为了去除掉所有偶数,直接修改了列表l。然而,运行后输出却是:
[3, 56, 7, 9, 5]
等一下!输出似乎不对。最终的结果仍然含有一个偶数56。为什么没有成功去除这个数呢?我们可以尝试打印出 for循环遍历的所有元素,运行如下代码:
l = [3, 4, 56, 7, 10, 9, 6, 5]
for i in l:
print(i)
if not i % 2 == 0:
continue
l.remove(i)
print(l)
这段代码的输出为:
3
4
7
10
6
[3, 56, 7, 9, 5]
从输出可以看出,for循环似乎没有访问列表中的所有元素。为了解for循环在内部究竟做了什么, 我们可以使用 iter