IndexError: lijst index buiten bereik en python

Ik vertel mijn programma om regel 53 van een uitvoer af te drukken. Vertelt deze fout me dat er niet zoveel regels zijn en daarom niet kunnen worden afgedrukt?


Antwoord 1, autoriteit 100%

Als je een lijst hebt met 53 items, is de laatste thelist[52]omdat indexering begint bij 0.

IndexError

De IndexErrorwordt gegenereerd wanneer wordt geprobeerd een index op te halen uit een reeks (bijv. list, tuple), en de index niet gevonden in de volgorde. De Python-documentatie definieert wanneer deze uitzondering optreedt:

Verhoogd wanneer een sequentie-subscript buiten bereik is. (Bron)

Hier is een voorbeeld dat de IndexErrorverhoogt:

test = list(range(53))
test[53]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-6-7879607f7f36> in <module>
      1 test = list(range(53))
----> 2 test[53]
IndexError: list index out of range

De foutberichtregel voor een IndexErrorbiedt geen geweldige informatie. Kijk of er een sequentiereferentie is die buiten het bereik ligt en wat het type sequentie is, in dit geval een list. Die informatie, gecombineerd met de rest van de traceback, is meestal voldoende om snel te bepalen hoe het probleem kan worden opgelost.


Antwoord 2, autoriteit 47%

Ja,

U probeert toegang te krijgen tot een element van de lijst dat niet bestaat.

MyList = ["item1", "item2"]
print MyList[0] # Will work
print MyList[1] # Will Work
print MyList[2] # Will crash.

Heb je een fout-by-one-fout?


Antwoord 3, autoriteit 9%

De manier waarop Python-indexering werkt, is dat het begint bij 0, dus het eerste nummer van uw lijst zou [0] zijn. U zou [52] moeten afdrukken, aangezien de startindex 0 is en
daarom is regel 53 [52].

Trek 1 van de waarde af en je zou in orde moeten zijn. 🙂


Antwoord 4, autoriteit 8%

Ja. De reeks heeft niet het 54e item.


Antwoord 5, autoriteit 5%

Dat klopt. ‘lijstindex buiten bereik’ betekent hoogstwaarschijnlijk dat u verwijst naar het n-th-element van de lijst, terwijl de lengte van de lijst kleiner is dan n.


Antwoord 6, autoriteit 3%

Houd er altijd rekening mee dat wanneer u deze fout wilt oplossen, de standaardwaarde van indexering en bereik begint bij 0, dus als het totale aantal items 100 is, geven l[99] en bereik (99) u toegang tot de laatste element.

Als je dit type fout krijgt, controleer dan a.u.b. items die tussen/midden in het bereik vallen, en zorg ervoor dat hun index niet de laatste is als je output krijgt, dan heb je de perfecte fout gemaakt die hierboven vermeld staat.


Antwoord 7, autoriteit 2%

Als u een lijst uit een tekstbestand leest, krijgt u mogelijk de laatste lege regel als lijstelement.
Je kunt er als volgt vanaf komen:

list.pop()
for i in list:
   i[12]=....

Antwoord 8

In Python begint indexering bij 0. Daarom, als je een lijst hebt met 53 items, zal list[52]het laatste item in de lijst zijn.

Other episodes