Som meddelandet säger uppstår detta fel när en sträng används för att indexera en lista. De flesta fall som leder till detta fel kan sammanfattas i följande situationer…
Contents
- 0.1 Felaktig användning av en lista som om den vore en dictionary
- 0.2 Felaktig användning av sträng som om den vore en heltalig index
- 1 n betyder att det inte är tillåtet att använda en lista som index i Python, utan endast heltal eller skivor
- 2 Python: How do you make a list indices an integer?
- 3 Integers indexes Python
- 4 Hur fixar jag indexfel i Python?
- 5 A list indices in Python refers to the positions of elements within a list
Felaktig användning av en lista som om den vore en dictionary
Detta problem uppstår vanligtvis när en json-objekt konverteras till ett Python-objekt men det finns en inbäddad dictionary i en lista. Det är särskilt irriterande (och lätt att missa) om listan bara innehåller en enda dictionary. I exemplet nedan är värdet under nyckeln ‘summary’ en lista som innehåller just en dictionary. Om man försöker hämta hemmascoren med hjälp av json kommer det att visas ett felmeddelande..
Feltypen TypeError: listindex måste vara heltal eller skivning, inte sträng, uppstår när vi försöker använda en sträng som index för att komma åt element i en lista. Detta är ett vanligt fel som kan inträffa när man arbetar med listor och JSON-data i Python-programmeringsspråket. Istället för att använda en sträng som index behöver vi använda ett heltal eller skiva för att korrekt komma åt önskat element i listan.
När man gör en http-begäran, ett API-anrop osv. är resultatet vanligtvis mycket inbäddat och det är inte så uppenbart hur man hanterar den datan. Men med en enkel felsökningssteg som att skriva ut typen, längden etc. av datan visas oftast hur man ska hantera den..
Feltyp: Listindex måste vara heltal, inte strängar
Another common mistake is to initialize a list but try to assign values to it using a key. The initialization probably happened dynamically and it’s not clear later on that it’s in fact a list. For example, in the following case, d is initialized as a list but there’s an attempt to add a key-value pair to it. A solution is to initialize an empty dict instead of.
Felaktig omvandling av en pandas dataframe till en lista
Ett vanligt sätt att ändra kolumnrubriker i en pandas dataframe är att direkt tilldela en lista med strängar som ska vara de nya rubrikerna till attributet pd.DataFrame.columns. Om det istället tilldelas pd.DataFrame, ersätts hela dataframen av en lista och det blir inte längre möjligt att komma åt en kolumn efter dess rubrik.
Felaktig användning av sträng som om den vore en heltalig index
En vanlig felsituation är när man försöker indexera en lista med hjälp av ett värde från användarinmatning. Eftersom input() returnerar en sträng måste den omvandlas till ett heltal innan den kan användas för att indexera en lista.
lst # <- TypeError: list indices must be integers or slices, not str
Felaktig typanvändning vid indexering av en lista
En annan vanlig felskrivning är att loopa över en lista och använda ett listobjekt för att indexera listan. Python’s for-loop är liknande Perls foreach i den meningen att loopen går över en samling av objekt. Eftersom listan redan itereras över behövs det ingen ytterligare indexering, så en lösning är att använda objektet direkt för vilken operation som behöver utföras med det. Eller kanske loopa över ett range-objekt som konstrueras med hjälp av längden på listan.
Detta fel inträffar förmodligen mycket oftare i en loop där lst skapades dynamiskt.
Detta är OP:s fall. En for-loop över en sträng använder en sträng för att indexera en lista. Lösningen är att loopa över ett range-objekt.
Feltypen TypeError: listindex måste vara heltal eller skivningar, inte strängar.
n betyder att det inte är tillåtet att använda en lista som index i Python, utan endast heltal eller skivor
Summary. This error generally occurs whenever we try to access the list using indexes but give strings instead of integers or slices in place of either the start point, end point, or step value. The most common solution to this problem is explicitly typecasting the index to an integer.
Python: How do you make a list indices an integer?
För att undvika felet ‘list indices must be integers’ bör du se till att använda ett heltal som index för en lista. Om du behöver använda en icke-heltalsvärde som index kan du konvertera det till ett heltal med hjälp av funktionen int().
Integers indexes Python
In Python, iterable objects are indexed or placed in data structures such as a string or dictionary using numbers, i.e. integers.
Hur fixar jag indexfel i Python?
För att förstå vad Python IndexError: list index out of range betyder, kan vi tänka på en lista som en rad med lådor där varje låda har ett nummer. Om vi försöker komma åt en låda utanför det tillgängliga området av listan, kommer vi få detta felmeddelande. För att fixa felet behöver vi se till att de element vi försöker komma åt ligger inom rätt intervall i listan. Detta kan göras genom att använda funktionerna range() och len().
A list indices in Python refers to the positions of elements within a list
Python list index() method is used to find position of element in list Python. It returns the position of the first occurrence of that element in the list. If the item is not found in the list, index() function raises a “ValueError” error.