从循环中的数组中删除对象

时间:2017-01-31 06:12:07

标签: python arrays iteration

一般来说,我有以下(当然是简化的)程序结构:

for i in range(len(EdgePixels)):
    for j in range(len(EdgePixels)):
        for k in range(len(EdgePixels)):
            # Now in here I want to delete some Entries from the Array...
            # e.g. I want to remove EdgePixels[5], so:
            del EdgePixels[5]

如果我试图运行它(不完全是这4行,但问题是在这一行)我当然得到错误

  

“列表索引超出范围”......

问题是,我在外部2 for - 循环中使用数组。

我的目标是,我可以从内部for - 循环中的数组中删除一些“unnessesary”条目,并且外部2 for-Loops可以继续运行带有已删除条目的“new array” ......

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

简单的方法是忽略索引而不是删除这些元素:

ignore_indices = set()

for i, item1 in enumerate(EdgePixels):
    if i in ignore_indices:
        continue
    for j, item2 in enumerate(EdgePixels):
        if j in ignore_indices:
            continue
        for k, item3 in enumerate(EdgePixels):
            ignore_indices.add(5)