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.

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]
