2017-01-31 3 views
2

Im Allgemeinen habe ich die folgende (natürlich vereinfacht) Programmstruktur:Entfernen von Objekten aus Array innerhalb von Schleifen

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] 

Wenn ich versuche, diese (nicht genau diese 4 Zeilen zu laufen, aber das Problem ist in diesem Linien) ich natürlich den Fehler ...

Das Problem ist, dass ich mit dem Array auch in der Außen 2 arbeiten"out of range Listenindex"

erhalten-Loops.

Mein Ziel ist, dass ich einige "unessary" Einträge aus dem Array im inneren for -loop löschen kann und die äußeren 2 for-Loops können weiterhin mit dem "neuen Array" mit den gelöschten Einträgen laufen ...

Gibt es einen Weg, um das zu lösen?

Antwort

1

Der einfache Weg wäre Indizes zu ignorieren, anstatt diese Elemente zu löschen:

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

Okay, danke! Ich werde es versuchen und werde meine Ergebnisse melden – Gykonik

+0

Okay, ich denke, dass dieser Teil meines Programms jetzt funktioniert! Vielen Dank! Jetzt muss ich den anderen Teil meines Programms vervollständigen ...; D – Gykonik

+0

Gern geschehen. Bitte vergiss nicht, die Antwort zu beantworten/zu beantworten :) – MSeifert

Verwandte Themen