2017-03-13 5 views
-1

Wenn Sie eine Funktion suchen, die eine Datei mit Tiernamen mit Längen- und Breitengrad lesen soll, gibt sie die #Tiere innerhalb eines festgelegten Bereichs zurück, ich erhalte jedoch immer einen Indexfehler und i ist nicht sicher, warum, im Python noch neu und nur ein wenig Hilfe benötigen: ')IndexError: Listenindex außerhalb des Bereichs Längengrad

def LocationCount(FileName, Distance, Lat2, Lon2):  
    List =[]              
    File = open(FileName, "r")         
    for line in File:           
      List.append(LineToList(line))      
    File.close()             

    List2 =[] 
    ListCount = 0 
    while ListCount <= len(List): 
     if CalculateDistance(List[ListCount][1], List[ListCount][2], Lat2, Lon2) <= Distance: 
      List2.append(line) 
     ListCount += 1 
    return(List2) 

S = LocationCount("Mammal.txt", 10, 54.988056, -1.619444) 
print (len(List2)) 
+0

zu sein, ist keine Variable ** list2 ** in Ihrem Hauptprogramm. Ihre Funktion hat eine variable ** list2 **, die außerhalb der Funktion nicht verfügbar ist. – Prune

Antwort

1

while ListCount <= len(List):

ändert es zu sein,

while ListCount < len(List): Listen sind 0 indiziert.

Auch Sie speichern den Wert in S und versuchen, list2 zu drucken, die in diesem Bereich nicht definiert ist.

S = LocationCount("Mammal.txt", 10, 54.988056, -1.619444) print (len(List2))

ersetzen, gibt

S = LocationCount("Mammal.txt", 10, 54.988056, -1.619444) print len(S)

+0

Omg danke! das hat das Problem des Indexfehlers behoben, du bist der Beste! aber jetzt sagt es Liste 2 ist nicht definiert: ') Was ist mit meinem Code –

+0

@MichaelCooper: Bitte sehen Sie die aktualisierte Antwort. Bitte akzeptieren Sie auch die Antwort, wenn es geholfen hat. – Fallen

Verwandte Themen