Python Lista index() med Exempel

⚡ Smart sammanfattning

Python list index() returnerar den första positionen för ett givet element, medan looping konstruktioner, listförståelser, enumerate(), filter(), NumPy-biblioteket och more_itertools.locate() utökar denna teknik för att samla in alla matchande index i en lista som innehåller dubbletter.

  • 🔘 index()-metoden: Det inbyggda index() returnerar den första lägsta positionen för ett element och accepterar valfria start- och slutgränser.
  • ☑️ Värdefel: index() genererar ett ValueError när elementet saknas, så anropet ska omslutas med try-except för säkra uppslagningar.
  • ✅ Alla förekomster: En for-loop, while-loop eller listförståelse samlar in varje index när ett värde upprepas inuti listan.
  • 🧪 Inbyggda hjälpare: enumerate() och filter() parar ihop ett index med varje objekt, vilket ger koncisa sätt att samla matchande positioner på en rad.
  • 🛠️ NumPy och fler_itertools: np.where() och more_itertools.locate() returnerar alla matchande index effektivt för stora datamängder.
  • 🤖 AI-arbetsflöden: Maskininlärningspipeliner lokaliserar etikettpositioner och matchande exempel efter index innan arrayer matar en modell.

Python Lista index()

En lista är en behållare som lagrar objekt av olika datatyper (ints, floats, Boolean, strängar, etc.) i en ordnad sekvens. Det är en viktig datastruktur som är inbyggd Python. Data skrivs inom hakparenteser ([]), och värdena separeras med komma(,).

Objekten i listan indexeras med det första elementet som börjar vid index 0. Du kan göra ändringar i den skapade listan genom att lägga till nya objekt eller genom att uppdatera, ta bort de befintliga. Den kan också ha dubbletter av objekt och en kapslad lista.

Det finns många metoder tillgängliga på en lista, och en av de viktigaste är index().

Python Lista index()

Metoden list index() hjälper dig att hitta det första lägsta indexet för det givna elementet. Om det finns dubbletter av element i listan, returneras det första indexet för elementet. Detta är det enklaste och enklaste sättet att få indexet.

Förutom den inbyggda list index()-metoden kan du även använda andra sätt att hämta indexet, som till exempel loo.ping genom listan, med hjälp av listförståelser, enumerate() och filtermetoder.

Metoden list index() returnerar det första lägsta indexet för det givna elementet.

syntax

list.index(element, start, end)

Driftparametrar

Driftparametrar BESKRIVNING
elementet Elementet som du vill ska få indexet.
starta Denna parameter är valfri. Du kan definiera startindexet för att söka efter elementet. Om inget anges är standardvärdet 0.
änden Denna parameter är valfri. Du kan ange slutindex för det element som ska sökas. Om det inte anges, anses det fram till slutet av listan.

Returvärde

Metoden list index() returnerar indexet för det givna elementet. Om elementet inte finns i listan, kommer metoden index() att ge ett fel, till exempel ValueError: 'Element' finns inte i listan.

Exempel: För att hitta indexet för det givna elementet.

I listan my_list = ['A', 'B', 'C', 'D', 'E', 'F'] skulle vi vilja veta indexet för elementen C och F.

Exemplet nedan visar hur du får indexet.

my_list = ['A', 'B', 'C', 'D', 'E', 'F']
print("The index of element C is ", my_list.index('C'))
print("The index of element F is ", my_list.index('F'))

Produktion:

The index of element C is  2
The index of element F is  5

Exempel: Använda start och slut i index()

I det här exemplet ska vi försöka begränsa sökningen efter indexet i en lista med hjälp av start- och slutindex.

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('C', 1, 5))
print("The index of element F is ", my_list.index('F', 3, 7))
#using just the startindex
print("The index of element D is ", my_list.index('D', 1))

Produktion:

The index of element C is  2
The index of element F is  5
The index of element D is  3

Exempel: För att testa index()-metoden med ett element som inte finns.

När du försöker söka i listan efter ett element som inte finns får du ett felmeddelande enligt nedan:

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('Z'))

Produktion:

Traceback (most recent call last):
File "display.py", line 3, in <module>
print("The index of element C is ", my_list.index('Z'))
ValueError: 'Z' is not in list

Använder for-loop för att få indexet för ett element i en lista

Med metoden list.index() har vi sett att den ger indexet för elementet som skickas som ett argument.

Betrakta nu listan som: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'GuruNamnetGuru' finns 3 gånger i indexet, och jag vill ha alla index med namnet 'Guru".

Med hjälp av for-loop bör vi kunna få de flera indexen som visas i exemplet nedan.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
all_indexes = [] 
for i in range(0, len(my_list)) : 
    if my_list[i] == 'Guru' : 
        all_indexes.append(i)
print("Originallist ", my_list)
print("Indexes for element Guru : ", all_indexes)

Produktion:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Använda while-loop och list.index()

Att använda en while-loop kommer att gå igenom listan som ges för att få alla index för det givna elementet.

I listan: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], vi behöver alla index för elementet 'Guru".

Nedan följer ett exempel som visar hur man hämtar alla index med hjälp av en while-loop.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
result = []
elementindex = -1
while True:
    try:
        elementindex = my_list.index('Guru', elementindex+1)
        result.append(elementindex)
    except  ValueError:
        break
print("OriginalList is ", my_list)
print("The index for element Guru is ", result)

Produktion:

OriginalList is  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
The index for element Guru is  [0, 3, 6]

Använda listförståelse för att få index för element i en lista

För att få alla index är ett snabbt och enkelt sätt att använda sig av listförståelse på listan.

Listförståelser är Python funktioner som används för att skapa nya sekvenser (såsom listor, ordböcker etc.), dvs att använda sekvenser som redan har skapats.

De hjälper till att minska längre loopar och gör din kod lättare att läsa och underhålla.

Följande exempel visar hur man gör det:

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
all_indexes = [a for a in range(len(my_list)) if my_list[a] == 'Guru']
print("Indexes for element Guru : ", all_indexes)

Produktion:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Använd Enumerate för att få indexet för ett element i en lista

Funktionen Enumerate() är en inbyggd funktion som är tillgänglig med PythonDu kan använda enumerate för att hämta alla index för elementet i en lista. Den tar indata som ett itererbart objekt (dvs. ett objekt som kan loopas), och utdata är ett objekt med en räknare för varje element.

Följande exempel visar hur man använder enumerate på en lista för att hämta alla index för ett givet element.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
print("Indexes for element Guru : ", [i for i, e in enumerate(my_list) if e == 'Guru'])

Produktion:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Använder filter för att få indexet för ett element i en lista

Metoden filter() filtrerar den givna listan baserat på den angivna funktionen. Varje element i listan kommer att skickas till funktionen, och de nödvändiga elementen kommer att filtreras baserat på det villkor som anges i funktionen.

Låt oss använda metoden filter() för att få indexen för det givna elementet i listan.

Följande exempel visar hur man använder ett filter i en lista.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
all_indexes = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) 
print("Indexes for element Guru : ", all_indexes)

Produktion:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Använder NumPy för att få indexet för ett element i en lista

NumPy-biblioteket används speciellt för arrayer. Så här kommer vi att använda NumPy för att hämta indexet för det element vi behöver från den givna listan.

För att använda NumPy måste vi installera det och importera det.

Här är stegen för samma sak:

Steg 1) Installera NumPy

pip install numpy

Steg 2) Importera NumPy-modulen.

import numpy as np

Steg 3) Använd np.array för att konvertera en lista till en array.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)

Steg 4) Hämta indexet för det element du vill ha med hjälp av np.where().

item_index = np.where(np_array == 'Guru')[0]

Den slutliga arbetskoden med utdata är följande:

import numpy as np
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)
item_index = np.where(np_array == 'Guru')[0]
print("Originallist ", my_list)
print("Indexes for element Guru :", item_index)

Produktion:

Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0 3 6]

Använda more_itertools.locate() för att hämta indexet för ett element i en lista

more_itertools.locate() hjälper till att hitta indexen för elementet i listan. Den här modulen fungerar med Python version 3.5+. Paketet more_itertools måste installeras först för att kunna använda den.

Följande är stegen för att installera och använda more_itertools:

Steg 1) Installera more_itertools med pip (Python (Kommandot är

pip install more_itertools

Steg 2) När installationen är klar, importera lokalisera modul som visas nedan.

from more_itertools import locate

Nu kan du använda lokaliseringsmodulen på en lista som visas nedan i exemplet:

from more_itertools import locate
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist : ", my_list)
print("Indexes for element Guru :", list(locate(my_list, lambda x: x == 'Guru')))

Produktion:

Originallist :  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0, 3, 6]

Vanliga frågor

Metoden index() genererar ett ValueError när elementet saknas. Linda in anropet i ett try-except-block, eller first test-medlemskap med operatorn in, så att ett saknat värde inte kraschar ditt program.

Värdet som returneras av index() är alltid en icke-negativ position räknad från början. Du kan använda negativa start- eller slutargument för att begränsa sökningen, men index() returnerar aldrig ett negativt index för ett hittat element.

Ja. index() jämför element exakt, så 'Guru' och 'guru' behandlas som olika värden. Att söka efter fel skiftläge ger ett ValueError. Normalisera strängar med lower() innan du söker om du behöver matchning som inte är skiftlägeskänslig.

Använd operatorn in, till exempel om 'Guru' i my_list. Den returnerar True eller False utan att generera ett fel, så du kan säkert anropa index() bara när elementet faktiskt finns i listan.

För en enskild sökning är den inbyggda index() redan effektiv eftersom den stannar vid den första matchningen. För att hitta många värden upprepade gånger, bygg en ordbokskartaping varje värde till sitt index, vilket gör varje sökning till en snabb operation i konstant tid.

Python listor tillhandahåller index() men har ingen find()-metod. index() genererar ett ValueError när elementet saknas, medan strängen find() returnerar -1. För listor, fånga felet eller kontrollera medlemskapet med operatorn in istället.

Att lokalisera ett elements index hjälper till att mappa kategoriska etiketter till numeriska positioner, hitta var en förutspådd klass visas eller justera funktionskolumner före träning. NumPy utökar detta med np.where() för snabba indexsökningar över stora arrayer och datamängder.

Ja. GitHub Copilot och agentic AI-assistenter genererar index(), enumerate() och förståelsebaserade sökningar från en vanlig kommentar, föreslår säker felhantering för saknade värden och refaktorerar loopar, men du bör fortfarande testa kantfall och bekräfta de returnerade positionerna.

Sammanfatta detta inlägg med: