Python Lijst index() met voorbeeld
⚡ Slimme samenvatting
Python `list index()` retourneert de eerste positie van een gegeven element, terwijl `loo`ping Constructies, list comprehensions, enumerate(), filter(), de NumPy-bibliotheek en more_itertools.locate() breiden deze techniek uit om elke overeenkomende index te verzamelen in een lijst die dubbele waarden bevat.

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 voor een lijst, en een van 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 list index()-methode kun je ook andere manieren gebruiken om de index te verkrijgen, zoals loo.ping Doorloop de lijst met behulp van list comprehensions, enumerate() en filtermethoden.
De list index() methode retourneert de eerste laagste index van het gegeven element.
Syntaxis
list.index(element, start, end)
Kenmerken
| Kenmerken | Beschrijving |
|---|---|
| element | Het element waarvan u de index wilt ophalen. |
| begin | Deze parameter is optioneel. U kunt de startindex definiëren waarnaar gezocht moet worden. 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 de index van 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 proberen we het zoeken naar een index in een lijst te beperken met behulp van een start- 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: De index()-methode testen met een element dat niet aanwezig is.
Als u in de lijst zoekt naar een element dat er niet in voorkomt, 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 volgt: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. De naam 'GuruHet teken ' komt 3 keer voor in de index, en ik wil alle indexen met die naam.Guru.
Met behulp van een for-loop zouden we de meerdere indexen moeten kunnen verkrijgen zoals in het onderstaande voorbeeld wordt getoond.
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'], we hebben alle indexen van element ' nodigGuru.
Hieronder staat een voorbeeld dat laat zien hoe je alle indexen kunt verkrijgen met behulp van een while-lus.
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 je dat 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 met PythonJe kunt `enumerate` gebruiken om alle indexen van een element in een lijst te krijgen. De functie neemt een iterable object als invoer (dat wil zeggen, een object waar je doorheen kunt loopen) en de uitvoer is een object met een teller voor elk item.
Het volgende voorbeeld laat zien hoe je de functie `enumerate` op een lijst kunt gebruiken om alle indexen voor een bepaald element te verkrijgen.
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 je een filter op een lijst kunt toepassen.
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 specifiek gebruikt voor arrays. We zullen hier dus NumPy gebruiken om de index van het gewenste element in de gegeven lijst te verkrijgen.
Om NumPy te gebruiken, moeten we het installeren en importeren.
Hieronder volgen de stappen:
Stap 1) Installeer NumPy
pip install numpy
Stap 2) Importeer de NumPy-module.
import numpy as np
Stap 3) Gebruik np.array om een lijst naar een array te converteren.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list)
Stap 4) Verkrijg de index van het element dat je zoekt 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]
De functie more_itertools.locate() gebruiken om de index van een element in een lijst te verkrijgen.
De functie 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 volgen de stappen voor het installeren en gebruiken van more_itertools:
Stap 1) Installeer more_itertools met pip (Python pakketbeheerder). Het commando is
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]
