一般来说,我有以下(当然是简化的)程序结构:
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” ......
有没有办法解决这个问题?
答案 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)