Python List index () met Example

Inhoudsopgave:

Anonim

Een lijst is een container die items van verschillende gegevenstypen (ints, floats, Boolean, strings, enz.) In een geordende volgorde opslaat. Het is een belangrijke datastructuur die in Python is ingebouwd. De 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 de bestaande items bij te werken of te verwijderen. Het kan ook dubbele items en een geneste lijst bevatten.

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

In deze tutorial leer je:

  • Python-lijstindex ()
  • For-loop gebruiken om de index van een element in een lijst op te halen
  • While-loop en list.index () gebruiken
  • Lijstbegrip gebruiken om de index van een element in een lijst te krijgen
  • Gebruik Enumerate om de index van een element in een lijst op te halen
  • Filter gebruiken om de index van een element in een lijst op te halen
  • NumPy gebruiken om de index van een element in een lijst op te halen
  • Het gebruik van more_itertools.locate () om de index van een element in een lijst op te halen

Python-lijstindex ()

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

Naast de ingebouwde list index () methode, kun je ook andere manieren gebruiken om de index te krijgen, zoals door de lijst bladeren, lijstbegrip gebruiken, enumerate (), filtermethodes.

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

Syntaxis

list.index(element, start, end)

Parameters

Parameters Omschrijving
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 specificeren voor het element dat moet worden doorzocht. Indien niet gegeven, wordt deze beschouwd tot het einde van de lijst.

Winstwaarde

De methode list index () retourneert de index van het opgegeven element. Als het element niet aanwezig is in de lijst, zal de methode index () een fout genereren, 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'], zouden we graag de index voor element C en F willen weten.

Het onderstaande voorbeeld laat zien 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'))

Uitgang:

The index of element C is 2The 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 startindexprint("The index of element D is ", my_list.index('D', 1))

Uitgang:

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

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

Wanneer u probeert te zoeken naar een index in de lijst voor 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'))

Uitgang:

Traceback (most recent call last):File "display.py", line 3, in 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 op te halen

Met de methode list.index () hebben we gezien dat het 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'.

Door for-loop te gebruiken, zouden we in staat moeten zijn om de meerdere indexen te krijgen, zoals getoond 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)

Uitgang:

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

While-loop en list.index () gebruiken

Het gebruik van een while-lus zal door de gegeven lijst lopen 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 dat laat zien hoe u alle indexen kunt ophalen met 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)

Uitgang:

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

Lijstbegrip gebruiken om de index van een element in een lijst te krijgen

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

Lijstbegrip zijn Python-functies die worden gebruikt voor het maken van nieuwe reeksen (zoals lijsten, woordenboeken, enz.), Dwz door reeksen te gebruiken die al zijn gemaakt.

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

Het volgende voorbeeld laat zien hoe u dit moet 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)

Uitgang:

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

Enumerate () functie is een ingebouwde functie die beschikbaar is met python. U kunt gebruik maken van enumerate om alle indexen van het element in een lijst te krijgen. Het heeft invoer nodig als een itereerbaar object (dwz een object dat kan worden doorgelust), en de uitvoer is een object met een teller voor elk item.

Het volgende voorbeeld laat zien hoe u gebruik kunt maken van enumerate 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'])

Uitgang:

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 op te halen

De methode filter () filtert de gegeven lijst op basis van de opgegeven 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 is opgegeven.

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

Het volgende voorbeeld laat zien hoe u 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)

Uitgang:

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 op te halen

NumPy-bibliotheek wordt speciaal gebruikt voor arrays. Dus hier zal gebruik worden gemaakt van NumPy om de index van het element dat we nodig hebben uit de gegeven lijst te halen.

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

Hier zijn de stappen voor hetzelfde:

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 van het gewenste element op met np.where ()

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

De laatste werkende code met uitvoer is als volgt:

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)

Uitgang:

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

Het gebruik van more_itertools.locate () om de index van een element in een lijst op te halen

De more_itertools.locate () helpt om de indexen van het element in de lijst te vinden. Deze module zal werken met python versie 3.5+. Het pakket more_itertools moet eerst worden geïnstalleerd om er gebruik van te kunnen maken.

Hieronder volgen de stappen om more_itertools te installeren en te gebruiken

Step1) Installeer more_itertools met pip (python-pakketbeheerder). De opdracht is

pip install more_itertools

Stap 2) Zodra de installatie is voltooid, importeert u de lokalisatiemodule zoals hieronder weergegeven

from more_itertools import locate

Nu kunt u gebruik maken van de zoekmodule in een lijst, zoals hieronder in het voorbeeld wordt getoond:

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

Uitgang:

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

Overzicht:

  • De list index () methode helpt je om de index van het gegeven element te vinden. Dit is de gemakkelijkste en eenvoudigste manier om de index te krijgen.
  • De methode list index () retourneert de index van het opgegeven element.
  • Als het element niet in de lijst voorkomt, zal de methode index () een fout genereren, bijvoorbeeld ValueError: 'Element' is not in list.
  • Naast de ingebouwde lijstmethode, kunt u ook andere manieren gebruiken om de index te krijgen, zoals door de lijst bladeren, lijstbegrip gebruiken, enumerate () gebruiken, een filter gebruiken, enz.
  • For-loop en while-loop gebruiken om de meerdere indexen van een bepaald element op te halen.
  • Om alle indexen te krijgen, is een snelle en eenvoudige manier om gebruik te maken van lijstbegrip op de lijst.
  • Lijstbegrip zijn Python-functies die worden gebruikt voor het maken van nieuwe reeksen.
  • Ze helpen om langere loops te verminderen en maken uw code gemakkelijker te lezen en te onderhouden.
  • U kunt gebruik maken van enumerate om alle indexen van het element in een lijst te krijgen.
  • Enumerate () functie is een ingebouwde functie die beschikbaar is met python. Het heeft invoer nodig als een itereerbaar object (dwz een object dat kan worden doorgelust), en de uitvoer is een object met een teller voor elk item.
  • De methode filter () filtert de gegeven lijst op basis van de opgegeven functie.
  • Numpy-bibliotheek wordt speciaal gebruikt voor arrays. U kunt gebruik maken van NumPy om de index van het element in de lijst te krijgen.
  • De more_itertools.locate () is nog een andere python-bibliotheek die helpt bij het vinden van de indexen van de gegeven lijst.