2017-01-31 8 views
2

В общем, я следующее (конечно, упрощенно) структуры программы:Удалить объекты из массива в петлях

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 -Loops.

Моя цель состоит в том, что я могу удалить некоторые «неувядающие» записи из массива во внутреннем for -loop, а внешние 2 для-Loops могут продолжать работать с «новым массивом» с удаленными записями ...

Есть ли способ, чтобы решить это?

ответ

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) 
+0

Хорошо, спасибо! Я попробую и расскажу о своих результатах. – Gykonik

+0

Хорошо, я думаю, что эта часть моей программы работает прямо сейчас! Благодаря! Теперь я должен выполнить другую часть моей программы ...; D – Gykonik

+0

Добро пожаловать. Пожалуйста, также не забудьте ответить и принять ответ :) – MSeifert

 Смежные вопросы

  • Нет связанных вопросов^_^