2017-02-10 3 views
0

Wie Sie unten sehen können, gibt es ein Array von Arrays, das die Ecken des Bildes speichert. Ich möchte dieses Array verwenden, um die Länge jeder Seite zu berechnen.Fehler "Listenzuweisungsindex außerhalb des Bereichs" beim Berechnen des Arrays

Dies ist mein Code:

imageDrawPoints = [] 
imageDrawPoints.append(imageShowConers) 
imageSumPoints = [] 
i=0; 
for imageDrawPoints in imageDrawPoints : 
    imageSumPoints[i] = imageDrawPoints[i] + imageDrawPoints[i+1] 
    i=i+1 
print imageSumPoints 

Fehler:

IndexError Traceback (most recent call last) in() 4 i=0; 5 for imageDrawPoints in imageDrawPoints : ----> 6 imageSumPoints[i] = imageDrawPoints[i] + imageDrawPoints[i+1] 7 i=i+1 8 print imageSumPoints

IndexError: list assignment index out of range

+0

imageDrawPoints = [] imageDrawPoints.append (imageShowConers) Druck imageDrawPoints [array ([[[324,50048828, 325,00543213]], [[433,49432373, 325,00195312]], [[324,49880981, 432,99136353]], [[216,50079346, 216,98078918]], [[108,50048065, 325,00384521]], [[2,63793683, 325,0098877]], [[108,49881744, 216,99128723]], [[216,49368286, 325,01428223]], [[108,50048065, 325,00540161]], [[324,50048828, 541,00384521]]], dtype = float32)] –

+0

Willkommen bei [ also], sollten Sie Ihren Beitrag bearbeiten, um Ihre Daten einzuschließen, anstatt sie in den Kommentar einzufügen. – Prisoner

+0

@ 하하 둘기 ** die Länge jeder Ecke und Ecke **? Meinst du Entfernung zwischen zwei Ecken? Oder Kantenlänge? –

Antwort

0
"imageDrawPoints[i+1]" is the problem. 

Wenn Sie eine Liste mit 5 Elemente haben es aussehen könnte [0,1,2,3 , 4]

Wenn Sie an das Ende Ihrer Iteration gelangen, sucht Ihr Code nach:

imageDrawPoints[4+1] 

die nicht in Ihrem Array existiert und die Fehler werfen.

Da ich nicht weiß, was Ihr Code tun muss (Sie müssen das herausfinden), aber Sie müssen eine Bedingung für das Ende des Arrays suchen und etwas anderes tun.

Etwas wie:

listExample = [0,1,2,3,4] 

counter = 0 
for i in listExample: 

     if counter != len(listExample) -1: 
     print i 
     l = listExample[counter] + (listExample[counter+1]) 
     else: 
      print "End Of Shape" 

    counter+=1 
+0

Hallo Ed Baker.So was muss ich ändern, wenn ich dieses Problem lösen muss? –

+0

Ich habe ein Codebeispiel hinzugefügt. Wenn Sie zufrieden sind, markieren Sie die Frage als beantwortet –

Verwandte Themen