相关疑难解决方法(0)

迭代时从列表中删除项目而不使用Python中的额外内存

我的问题很简单:我有一个很长的元素列表,我想迭代并根据条件检查每个元素.根据条件的结果,我想删除列表的当前元素,并像往常一样继续迭代它.

我已经在这个问题上阅读了其他几个主题.提出两种解决方案.要么从列表中创建一个字典(这意味着要复制已经填满我所有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
Run Code Online (Sandbox Code Playgroud)

python iteration list

9
推荐指数
3
解决办法
1万
查看次数

标签 统计

iteration ×1

list ×1

python ×1