Python Lijst index() met voorbeeld

Een lijst is een container waarin items van verschillende gegevenstypen (ints, floats, Boolean, strings, enz.) in een geordende volgorde worden opgeslagen. Het is een belangrijke datastructuur die is ingebouwd PythonDe gegevens worden tussen vierkante haken ([]) geschreven en de waarden worden gescheiden door komma's (,).

De items in de lijst worden geĆÆndexeerd met het eerste element beginnend bij index 0. U kunt wijzigingen aanbrengen in de gemaakte lijst door nieuwe items toe te voegen of door bij te werken en de bestaande te verwijderen. Het kan ook dubbele items en een geneste lijst bevatten.

Er zijn veel methoden beschikbaar in een lijst, en de belangrijkste is index().

Python Lijstindex()

De list index() methode helpt je om de eerst laagste index van het gegeven element te vinden. Als er dubbele elementen in de lijst voorkomen, wordt de eerste index van het element geretourneerd. Dit is de eenvoudigste en eenvoudigste manier om de index te verkrijgen.

Naast de ingebouwde lijstindex()-methode, kunt u ook andere manieren gebruiken om de index te verkrijgen, zoals door de lijst bladeren, met behulp van lijstbegrippen, enumerate() en filtermethoden.

De list index() methode retourneert de eerste laagste index van het gegeven element.

Syntaxis

list.index(element, start, end)

parameters

parameters Beschrijving
element Het element waarvan u de index wilt ophalen.
begin Deze parameter is optioneel. U kunt de start: index definiƫren om naar het element te zoeken. Indien niet opgegeven, is de standaardwaarde 0.
einde Deze parameter is optioneel. U kunt de eindindex opgeven voor het te doorzoeken element. Als het niet wordt opgegeven, wordt het overwogen tot het einde van de lijst.

Winstwaarde

De list index() methode retourneert de index van het gegeven element. Als het element niet in de lijst aanwezig is, genereert de methode index() een fout, bijvoorbeeld ValueError: 'Element' staat niet in de lijst.

Voorbeeld: Om de index van het gegeven element te vinden.

In de lijst my_list = ['A', 'B', 'C', 'D', 'E', 'F'] willen we graag de index voor element C en F weten.

In het onderstaande voorbeeld ziet u hoe u de index kunt ophalen.

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'))

Output:

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

Voorbeeld: begin en einde gebruiken in index()

In dit voorbeeld wordt geprobeerd het zoeken naar een index in een lijst te beperken met behulp van de begin- en eindindex.

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))

Output:

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

Voorbeeld: Om de index()-methode te testen met een element dat niet aanwezig is.

Wanneer u probeert te zoeken naar een index in de lijst voor een element dat niet aanwezig is, krijgt u een foutmelding zoals hieronder weergegeven:

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

Output:

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

For-loop gebruiken om de index van een element in een lijst te verkrijgen

Met de methode list.index() hebben we gezien dat deze de index geeft van het element dat als argument wordt doorgegeven.

Beschouw de lijst nu als: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] . De naam 'Guru' komt 3 keer voor in de index, en ik wil alle indexen met de naam 'Guru'.

Met behulp van for-loop zouden we de meerdere indexen moeten kunnen krijgen, zoals weergegeven in het onderstaande voorbeeld.

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)

Output:

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

While-loop en list.index() gebruiken

Door een while-loop te gebruiken, wordt de opgegeven lijst doorlopen om alle indexen van het gegeven element op te halen.

In de lijst: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] hebben we alle indexen van element 'Guru' nodig.

Hieronder ziet u een voorbeeld van hoe u alle indexen kunt verkrijgen met behulp van 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)

Output:

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

Lijstbegrip gebruiken om de index van elementen in een lijst te verkrijgen

Om alle indexen te krijgen, is een snelle en eenvoudige manier gebruik te maken van lijstbegrip op de lijst.

Lijstbegrippen zijn Python functies die worden gebruikt voor het maken van nieuwe reeksen (zoals lijsten, woordenboeken, enz.), dwz gebruik maken van reeksen die al zijn gemaakt.

Ze helpen langere lussen te verminderen en maken uw code gemakkelijker te lezen en te onderhouden.

Het volgende voorbeeld laat zien hoe u dit kunt doen:

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)

Output:

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

Gebruik Enumerate om de index van een element in een lijst op te halen

De functie Enumerate() is een ingebouwde functie die beschikbaar is in Python. Je kunt enumerate gebruiken om alle indexen van het element in een lijst te krijgen. Het neemt invoer als een itereerbaar object (dwz een object dat in een lus kan worden geplaatst) en de uitvoer is een object met een teller voor elk item.

Het volgende voorbeeld laat zien hoe u enumerate kunt gebruiken in een lijst om alle indexen voor een bepaald element op te halen.

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'])

Output:

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

Filter gebruiken om de index van een element in een lijst te verkrijgen

De filter()-methode filtert de gegeven lijst op basis van de gegeven functie. Elk element van de lijst wordt doorgegeven aan de functie en de vereiste elementen worden gefilterd op basis van de voorwaarde die in de functie wordt opgegeven.

Laten we de filter()-methode gebruiken om de indexen voor het gegeven element in de lijst te verkrijgen.

Het volgende voorbeeld laat zien hoe u een filter op een lijst kunt gebruiken.

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)

Output:

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

NumPy gebruiken om de index van een element in een lijst te verkrijgen

De NumPy-bibliotheek wordt speciaal gebruikt voor arrays. Dus hier zullen we NumPy gebruiken om de index te krijgen van het element dat we nodig hebben uit de gegeven lijst.

Om NumPy te gebruiken, moeten we het installeren en importeren.

Hier zijn de stappen hiervoor:

Stap 1) Installeer NumPy

pip install numpy

Stap 2) Importeer de NumPy-module.

import numpy as np

Stap 3) Maak gebruik van np.array om de lijst naar een array te converteren

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

Stap 4) Haal de index op van het gewenste element met behulp van np.where()

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

De uiteindelijke werkende code met uitvoer is als volgt:

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)

Output:

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

Gebruik more_itertools.locate() om de index van een element in een lijst te verkrijgen

De more_itertools.locate() helpt bij het vinden van de indexen van het element in de lijst. Deze module werkt met Python versie 3.5+. Het pakket meer_itertools moet eerst worden geĆÆnstalleerd om er gebruik van te kunnen maken.

Hieronder staan ā€‹ā€‹de stappen voor het installeren en gebruiken van more_itertools

Stap 1) Installeer more_itertools met pip (python-pakketbeheerder). De opdracht luidt

pip install more_itertools

Stap 2) Zodra de installatie is voltooid, importeert u het plaatsen module zoals hieronder weergegeven

from more_itertools import locate

Nu kunt u gebruik maken van de locatiemodule op een lijst, zoals hieronder in het voorbeeld wordt weergegeven:

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')))

Output:

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

Samenvatting

  • De list index() methode helpt je de index van het gegeven element te vinden. Dit is de eenvoudigste en eenvoudigste manier om de index te verkrijgen.
  • De list index() methode retourneert de index van het gegeven element.
  • Als het element niet aanwezig is in de lijst, genereert de methode index() een fout, bijvoorbeeld ValueError: 'Element' staat niet in de lijst.
  • Naast de ingebouwde lijstmethode kun je ook andere manieren gebruiken om de index te verkrijgen, zoals door de lijst bladeren, lijstbegrippen gebruiken, enumerate() gebruiken, een filter gebruiken, enz.
  • Gebruik for-loop en while-loop om de meerdere indexen van een bepaald element te verkrijgen.
  • Om alle indexen te krijgen, is een snelle en eenvoudige manier gebruik te maken van lijstbegrip op de lijst.
  • Lijstbegrippen zijn Python functies die worden gebruikt voor het maken van nieuwe reeksen.
  • Ze helpen langere lussen te verminderen en maken uw code gemakkelijker te lezen en te onderhouden.
  • Je kunt enumerate gebruiken om alle indexen van het element in een lijst te krijgen.
  • De functie Enumerate() is een ingebouwde functie die beschikbaar is in Python. Het neemt invoer als een itereerbaar object (dwz een object dat in een lus kan worden geplaatst) en de uitvoer is een object met een teller voor elk item.
  • De filter()-methode filtert de gegeven lijst op basis van de gegeven functie.
  • Numpy-bibliotheek wordt speciaal gebruikt voor arrays. U kunt NumPy gebruiken om de index van het element in de lijst te verkrijgen.
  • De more_itertools.locate() is nog een andere Python-bibliotheek die helpt bij het vinden van de indexen van de gegeven lijst.