En lista är en behållare som lagrar objekt av olika datatyper (ints, floats, booleska, strängar etc.) i en ordnad sekvens. Det är en viktig datastruktur som är inbyggd i 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, radera de befintliga. Det kan också ha dubbla objekt och en kapslad lista.
Det finns många metoder tillgängliga i en lista, och det viktigaste är indexet ().
I den här handledningen lär du dig:
- Python List index ()
- Använda for-loop för att få index för ett element i en lista
- Använda while-loop och list.index ()
- Använda listförståelse för att få index över element i en lista
- Använd Enumerate för att få index för ett element i en lista
- Använd filter för att få index för ett element i en lista
- Använda NumPy för att få index för ett element i en lista
- Använda more_itertools.locate () för att få index för ett element i en lista
Python List index ()
Listindex () -metoden hjälper dig att hitta det första lägsta indexet för det angivna elementet. Om det finns dubbletter i listan returneras elementets första index. Detta är det enklaste och enklaste sättet att få indexet.
Förutom den inbyggda listindex () -metoden kan du också använda andra sätt att få indexet som att slinga igenom listan med hjälp av listförståelser, räkna (), filtermetoder.
Listindex () -metoden returnerar det första lägsta indexet för det angivna elementet.
Syntax
list.index(element, start, end)
Parametrar
Parametrar | Beskrivning |
element | Elementet som du vill få indexet. |
Start | Denna parameter är valfri. Du kan definiera start: index för att söka efter elementet. Om det inte anges är standardvärdet 0. |
slutet | Denna parameter är valfri. Du kan ange slutindex för det element som ska sökas. Om den inte ges beaktas den till slutet av listan. |
Returvärde
Metoden listindex () returnerar indexet för det angivna elementet. Om elementet inte finns i listan kommer metoden index () att kasta 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'] vill vi veta indexet för element C och F.
Exemplet nedan visar hur man 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 2The index of element F is 5
Exempel: Använd start och slut i index ()
I det här exemplet försöker du begränsa sökningen efter index i en lista med 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 startindexprint("The index of element D is ", my_list.index('D', 1))
Produktion:
The index of element C is 2The index of element F is 5The index of element D is 3
Exempel: Att testa index () -metoden med ett element som inte finns.
När du försöker söka efter index i listan efter element som inte finns, får du ett fel som visas 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, inprint("The index of element C is ", my_list.index('Z'))ValueError: 'Z' is not in list
Använda for-loop för att få index för ett element i en lista
Med list.index () -metoden 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', 'Guru']. Namnet 'Guru' finns tre gånger i indexet, och jag vill ha alla index med namnet 'Guru'.
Med hjälp av for-loop ska vi kunna få flera index 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 ()
Genom att använda en while-loop kommer du att gå igenom listan för att få alla index för det givna elementet.
I listan: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] behöver vi alla index för elementet 'Guru'.
Nedan ges ett exempel som visar hur man får alla index med hjälp av while-loop
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']result = []elementindex = -1while True:try:elementindex = my_list.index('Guru', elementindex+1)result.append(elementindex)except ValueError:breakprint("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 över element i en lista
För att få alla index är ett snabbt och enkelt sätt att använda 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 med användning av sekvenser som redan har skapats.
De hjälper till att minska längre slingor och göra 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å index för ett element i en lista
Enumerate () -funktionen är en inbyggd funktion som är tillgänglig med python. Du kan använda enumerate för att få alla elementens element i en lista. Det tar inmatning som ett iterabelt objekt (dvs. ett objekt som kan slingas), och utgången är ett objekt med en räknare till varje objekt.
Följande exempel visar hur man använder enumerate i en lista för att få alla index för ett visst 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änd filter för att få index för ett element i en lista
Metoden filter () filtrerar den angivna listan baserat på den angivna funktionen. Varje element i listan kommer att skickas till funktionen, och de element som krävs filtreras utifrån det tillstånd som ges i funktionen.
Låt oss använda metoden filter () för att få index för det angivna elementet i listan.
Följande exempel visar hur man använder 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ända NumPy för att få index för ett element i en lista
NumPy-biblioteket används speciellt för matriser. Så här kommer att använda NumPy för att få indexet för det element vi behöver från listan.
För att kunna använda NumPy måste vi installera det och importera det.
Här är stegen för samma:
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 listan 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 använda, med np.where ()
item_index = np.where(np_array == 'Guru')[0]
Den slutliga arbetskoden med utdata är som följer:
import numpy as npmy_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 få index för ett element i en lista
The more_itertools.locate () hjälper till att hitta index för elementet i listan. Den här modulen fungerar med pythonversion 3.5+. Paketet more_itertools måste installeras först för att använda det.
Nedan följer stegen för att installera och använda more_itertools
Steg 1) Installera more_itertools med pip (python-pakethanteraren). Kommandot är
pip install more_itertools
Steg 2) När installationen är klar importerar du lokaliseringsmodulen enligt nedan
from more_itertools import locate
Nu kan du använda lokaliseringsmodulen i en lista som visas nedan i exemplet:
from more_itertools import locatemy_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]
Sammanfattning:
- List index () -metoden hjälper dig att hitta index för det angivna elementet. Detta är det enklaste och enklaste sättet att få indexet.
- Metoden listindex () returnerar indexet för det angivna elementet.
- Om elementet inte finns i listan kommer metoden index () att kasta ett fel, till exempel ValueError: 'Element' finns inte i listan.
- Förutom den inbyggda listmetoden kan du också använda andra sätt att få indexet som att gå igenom listan, använda listförståelser, använda enumerate (), använda ett filter etc.
- Använda for-loop och while-loop för att få flera index för ett visst element.
- För att få alla index är ett snabbt och enkelt sätt att använda listförståelse på listan.
- Listförståelser är Python-funktioner som används för att skapa nya sekvenser.
- De hjälper till att minska längre slingor och göra din kod lättare att läsa och underhålla.
- Du kan använda enumerate för att få alla elementens element i en lista.
- Enumerate () -funktionen är en inbyggd funktion som är tillgänglig med python. Det tar inmatning som ett iterabelt objekt (dvs. ett objekt som kan slingas), och utgången är ett objekt med en räknare till varje objekt.
- Metoden filter () filtrerar den angivna listan baserat på den angivna funktionen.
- Numpy-biblioteket används speciellt för matriser. Du kan använda NumPy för att få indexet för elementet i listan.
- The more_itertools.locate () är ännu ett pythonbibliotek som hjälper till att hitta index för listan.