【发布时间】:2011-02-07 10:08:38
【问题描述】:
我的问题很简单:我有一长串要遍历的元素,并根据条件检查每个元素。根据条件的结果,我想删除列表的当前元素,并像往常一样继续迭代它。
我已经阅读了一些关于这个问题的其他帖子。将提出两种解决方案。要么从列表中创建一个字典(这意味着对我的情况下已经填满所有 RAM 的所有数据进行复制)。要么反向遍历列表(这打破了我想要实现的算法的概念)。
还有比这更好或更优雅的方法吗?
def walk_list(list_of_g):
g_index = 0
while g_index < len(list_of_g):
g_current = list_of_g[g_index]
if subtle_condition(g_current):
list_of_g.pop(g_index)
else:
g_index = g_index + 1
【问题讨论】:
-
是的,在发布我的问题之前,我仔细阅读了您链接到的其他线程。其他线程中提出的答案都没有解决我的担忧。这是因为我的问题在排除复制列表以及向后遍历列表的意义上有所不同。