Python Lista index() med Exempel

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 av den viktiga ä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 också använda andra sätt för att få indexet som att gå igenom listan genom att använda listuppfattningar, enumerate(), filtermetoder.

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

syntax

list.index(element, start, end)

Driftparametrar

Driftparametrar Systembeskrivningar
elementet Elementet som du vill ska få indexet.
starta Denna parameter är valfri. Du kan definiera start: index för att söka efter elementet. Om det inte 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 element 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 kommer att försöka 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 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 metoden index() med ett element som inte finns.

När du försöker söka efter index i listan för element som inte finns kommer du att få ett felmeddelande 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, 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', 'Guru'] . Namnet "Guru" finns tre 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 multipla 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'], behöver vi alla index för elementet 'Guru'.

Nedan ges ett exempel som visar hur man får alla index med 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:

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

Enumerate()-funktionen är en inbyggd funktion tillgänglig med python. Du kan använda enumerate för att få alla index för elementet i en lista. Det tar indata som ett iterbart objekt (dvs ett objekt som kan loopas), och utdata är ett objekt med en räknare till varje objekt.

Följande exempel visar hur man använder enumerate på en lista för att få 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 filter på 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 att använda NumPy för att få indexet för elementet vi behöver från den angivna listan.

För att 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 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 använda med 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 få 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+. Förpackningen 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 package manager). 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]

Sammanfattning

  • Metoden list index() hjälper dig att hitta indexet för det givna elementet. Detta är det enklaste och enklaste sättet att få indexet.
  • 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.
  • Förutom den inbyggda listmetoden kan du också använda andra sätt att få indexet som att gå igenom listan, använda listuppfattningar, använda enumerate(), använda ett filter, etc.
  • Använda for-loop och while-loop för att få flera index för ett givet element.
  • 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.
  • De hjälper till att minska längre loopar och gör din kod lättare att läsa och underhålla.
  • Du kan använda enumerate för att få alla index för elementet i en lista.
  • Enumerate()-funktionen är en inbyggd funktion tillgänglig med python. Det tar indata som ett iterbart objekt (dvs ett objekt som kan loopas), och utdata är ett objekt med en räknare till varje objekt.
  • Metoden filter() filtrerar den givna listan baserat på den angivna funktionen.
  • Numpy-biblioteket används speciellt för arrayer. Du kan använda NumPy för att få indexet för det element som anges i listan.
  • More_itertools.locate() är ännu ett python-bibliotek som hjälper till att hitta indexen för den angivna listan.