/ / Python per la programmazione dei dati di lettura

Programmazione Python di lettura dei dati - Python

count = 0
for row in file:
count+=1
segment = row[:-1].split(", ")
num += 1
if segment[14] == ">50K":
count1 += 1
print ("no of line are", count1)
elif segment[14] == "<=50K":
count2 += 1
print ("no of line are", count2)

quindi questo codice funziona ma se commento entrambe le dichiarazioni di stampa il mio codice mi dà questo errore

IndexError: list index out of range

qualcuno può spiegare al mio perché e come aggiustarlo perché sono davvero confuso.

risposte:

3 per risposta № 1

Rifletti su questo koan:

segment = "".split()   # returns []
s = segment[14]

... qual è il suono dell'accesso a un elemento della lista che non c'è?


1 per risposta № 2

Probabilmente l'errore si verifica dove provi ad accedere segment[14].

Su una linea che ha meno di 15 segmenti, semplicemente non puoi accedere [14].

Potresti voler controllare len(segments) prima, o potresti voler cogliere questa eccezione e gestirla appropriatamente.


1 per risposta № 3

Un altro problema con il codice: non stai definendo count1 e count2, proprio come hai impostato il conteggio a 0 nella prima riga.