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.

  • 🔘 index() methode: De ingebouwde functie index() retourneert de eerste laagste positie van een element en accepteert optionele begin- en eindgrenzen.
  • ☑️ Waardefout: `index()` geeft een `ValueError` als het element niet bestaat, dus plaats de aanroep in een `try-except` blok voor veilige zoekopdrachten.
  • Alle gevallen: Een for-loop, while-loop of list comprehension verzamelt elke index wanneer een waarde zich herhaalt binnen de lijst.
  • 🧪 Ingebouwde hulpmiddelen: enumerate() en filter() koppelen een index aan elk item, waardoor je op beknopte wijze in één regel overeenkomende posities kunt verzamelen.
  • NumPy en more_itertools: np.where() en more_itertools.locate() retourneren efficiënt alle overeenkomende indexen voor grote datasets.
  • 🤖 AI-workflows: Machine learning-pipelines lokaliseren labelposities en overeenkomende voorbeelden op basis van index voordat arrays aan een model worden aangeleverd.

Python Lijstindex()

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]

Veelgestelde vragen

De `index()`-methode genereert een `ValueError` wanneer het element ontbreekt. Plaats de aanroep in een `try-except`-blok of controleer eerst of een element aanwezig is met de `in`-operator, zodat een ontbrekende waarde uw programma niet laat vastlopen.

De waarde die door index() wordt geretourneerd, is altijd een niet-negatieve positie, gerekend vanaf het begin. Je kunt negatieve start- of eindargumenten doorgeven om de zoekopdracht te beperken, maar index() zelf retourneert nooit een negatieve index voor een gevonden element.

Ja. index() vergelijkt elementen exact, dus 'Guru' en 'guru' worden als verschillende waarden beschouwd. Zoeken naar de verkeerde hoofdlettergevoeligheid leidt tot een ValueError. Normaliseer strings met lower() voordat u gaat zoeken als u hoofdletterongevoelige overeenkomsten nodig hebt.

Gebruik de operator 'in', bijvoorbeeld als 'Guru' in my_list. Het retourneert True of False zonder een foutmelding te geven, dus je kunt index() veilig alleen aanroepen als het element daadwerkelijk in de lijst aanwezig is.

Voor een enkele zoekopdracht is de ingebouwde `index()`-functie al efficiënt, omdat deze stopt bij de eerste overeenkomst. Om herhaaldelijk veel waarden te vinden, kunt u een woordenboekmap maken.ping Elke waarde wordt gekoppeld aan de bijbehorende index, waardoor elke zoekopdracht een snelle bewerking met constante uitvoeringstijd wordt.

Python Lijsten hebben wel een `index()`-methode, maar geen `find()`-methode. `index()` geeft een `ValueError` als het element ontbreekt, terwijl de string `find()` -1 retourneert. Voor lijsten is het beter om de fout op te vangen of de aanwezigheid te controleren met de `in`-operator.

Het vinden van de index van een element helpt bij het koppelen van categorische labels aan numerieke posities, het vinden van de plaats waar een voorspelde klasse voorkomt, of het uitlijnen van featurekolommen vóór de training. NumPy breidt dit uit met np.where() voor snelle indexzoekacties in grote arrays en datasets.

Ja. GitHub Copilot en AI-assistenten genereren index(), enumerate() en op begrip gebaseerde zoekopdrachten vanuit een eenvoudige opmerking, stellen veilige foutafhandeling voor ontbrekende waarden voor en herstructureren lussen, hoewel je nog steeds randgevallen moet testen en de geretourneerde posities moet controleren.

Vat dit bericht samen met: