【发布时间】:2015-09-08 15:40:10
【问题描述】:
我正在尝试使用项目迭代列表。处理该项目后,我想删除该项目并将列表写入文件。但是有一个问题是只删除偶数位置的项目。
这是一个非常简单的例子:
>>> x = [1,2,3,4,5,6,7,8,9]
>>> for i in x:
... print x
... x.remove(i)
... write_x_into_the_file()
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 7, 8, 9]
[2, 4, 6, 8, 9]
我认为这是因为它使用索引递增进行迭代。你知道一些pythonic的解决方法吗?
【问题讨论】:
-
你真正想要达到什么目的?
-
这些项目是真实的网址。我想对所有这些 url 做一些事情(以获取一些数据)。但有时,会出现连接中断或类似问题的情况。为了能够从出现问题的 url 继续,我必须将它们保存到文件中。
-
那么为什么在迭代时需要从列表中删除项目?
-
首先要找到所有的url。这些 url 被写入文件中。下一步是处理每个 url,以便一个接一个地加载和处理这些 url。处理 url 时,它会从列表中删除,因为我不想处理它两次并保存列表,因此如果连接出现问题,脚本知道从哪里开始。
-
顺序重要吗?你能每个人都
pop吗?
标签: python list loops iteration