Python List index () med eksempel

Indholdsfortegnelse:

Anonim

En liste er en container, der gemmer varer af forskellige datatyper (ints, floats, boolean, strings osv.) I en ordnet rækkefølge. Det er en vigtig datastruktur, der er indbygget i Python. Dataene skrives inden for firkantede parenteser ([]), og værdierne adskilles med komma (,).

Elementerne på listen indekseres med det første element, der starter ved indeks 0. Du kan foretage ændringer i den oprettede liste ved at tilføje nye elementer eller ved at opdatere, slette de eksisterende. Det kan også have duplikatartikler og en indlejret liste.

Der er mange metoder til rådighed på en liste, og af det vigtige er indekset ().

I denne vejledning lærer du:

  • Python List-indeks ()
  • Brug af for-loop til at få indekset for et element på en liste
  • Brug af while-loop og list.index ()
  • Brug af listeforståelse til at få indekset over element i en liste
  • Brug Enumerate til at få indekset for et element på en liste
  • Brug filter til at få indekset over et element på en liste
  • Brug af NumPy til at få indekset for et element på en liste
  • Brug more_itertools.locate () for at få indekset for et element på en liste

Python List-indeks ()

List index () -metoden hjælper dig med at finde det første laveste indeks for det givne element. Hvis der er duplikatelementer inde på listen, returneres elementets første indeks. Dette er den nemmeste og ligetil måde at få indekset på.

Udover den indbyggede listeindeks () -metode kan du også bruge andre måder til at få indekset som at løbe gennem listen ved hjælp af listeforståelser, enumerate (), filtermetoder.

Metoden listeindeks () returnerer det første laveste indeks for det givne element.

Syntaks

list.index(element, start, end)

Parametre

Parametre Beskrivelse
element Det element, du vil få indekset.
Start Denne parameter er valgfri. Du kan definere start: indeks for at søge efter elementet. Hvis den ikke er angivet, er standardværdien 0.
ende Denne parameter er valgfri. Du kan specificere slutindekset for det element, der skal søges i. Hvis den ikke gives, overvejes den indtil slutningen af ​​listen.

Returneringsværdi

Metoden listeindeks () returnerer indekset for det givne element. Hvis elementet ikke er til stede på listen, vil metoden index () kaste en fejl, for eksempel ValueError: 'Element' er ikke på listen.

Eksempel: At finde indekset for det givne element.

På listen my_list = ['A', 'B', 'C', 'D', 'E', 'F'] vil vi gerne vide indekset for element C og F.

Eksemplet nedenfor viser, hvordan man får indekset.

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 2The index of element F is 5

Eksempel: Brug af start og slut i indeks ()

I dette eksempel vil forsøge at begrænse søgningen efter indeks på en liste ved hjælp af start- og slutindeks.

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

Produktion:

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

Eksempel: At teste index () -metoden med et element, der ikke er til stede.

Når du forsøger at søge efter indeks på listen efter element, der ikke er til stede, får du en fejl som vist nedenfor:

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 print("The index of element C is ", my_list.index('Z'))ValueError: 'Z' is not in list

Brug af for-loop til at få indekset for et element på en liste

Med metoden list.index () har vi set, at den giver indekset for det element, der sendes som et argument.

Overvej nu listen som: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Navnet 'Guru' er til stede 3 gange i indekset, og jeg vil have alle indekserne med navnet 'Guru'.

Ved hjælp af for-loop skal vi kunne få flere indekser som vist i eksemplet nedenfor.

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]

Brug af while-loop og list.index ()

Brug af en while-loop vil løbe gennem den givne liste for at få alle indekserne for det givne element.

På listen: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], vi har brug for alle indekserne for elementet 'Guru'.

Nedenfor er et eksempel vist, hvordan man får alle indekserne ved hjælp af 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)

Produktion:

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

Brug af listeforståelse til at få indekset over element i en liste

For at få alle indekserne er en hurtig og ligetil måde at gøre brug af listeforståelse på listen.

Listeforståelser er Python-funktioner, der bruges til at oprette nye sekvenser (såsom lister, ordbøger osv.), Dvs. ved hjælp af sekvenser, der allerede er oprettet.

De hjælper med at reducere længere sløjfer og gøre din kode lettere at læse og vedligeholde.

Følgende eksempel viser, hvordan man gør det:

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]

Brug Enumerate til at få indekset for et element på en liste

Enumerate () -funktion er en indbygget funktion, der er tilgængelig med python. Du kan gøre brug af enumerate for at få alle elementets indekser på en liste. Det tager input som et iterabelt objekt (dvs. et objekt, der kan sløjfe), og output er et objekt med en tæller til hvert element.

Følgende eksempel viser, hvordan man gør brug af enumerate på en liste for at få alle indekserne for det givne 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]

Brug filter til at få indekset over et element på en liste

Metoden filter () filtrerer den givne liste baseret på den givne funktion. Hvert element på listen overføres til funktionen, og de nødvendige elementer filtreres ud fra den tilstand, der er angivet i funktionen.

Lad os bruge metoden filter () til at få indekserne for det givne element på listen.

Følgende eksempel viser, hvordan man bruger filter på en liste.

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]

Brug af NumPy til at få indekset for et element på en liste

NumPy-biblioteket bruges specielt til arrays. Så her vil bruge NumPy til at få indekset over det element, vi har brug for, fra den givne liste.

For at gøre brug af NumPy skal vi installere det og importere det.

Her er trinene for det samme:

Trin 1) Installer NumPy

pip install numpy

Trin 2) Importer NumPy-modulet.

import numpy as np

Trin 3) Brug np.array til at konvertere listen til en matrix

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

Trin 4) Hent indekset for det ønskede element ved hjælp af np.where ()

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

Den endelige arbejdskode med output er som følger:

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)

Produktion:

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

Brug more_itertools.locate () for at få indekset for et element på en liste

The more_itertools.locate () hjælper med at finde indekserne for elementet på listen. Dette modul fungerer med python version 3.5+. Pakken more_itertools skal installeres først for at gøre brug af den.

Følgende er trinene til installation og brug af more_itertools

Trin1) Installer more_itertools ved hjælp af pip (python-pakkehåndtering). Kommandoen er

pip install more_itertools

Trin 2) Når installationen er færdig, skal du importere lokaliseringsmodulet som vist nedenfor

from more_itertools import locate

Nu kan du bruge lokaliseringsmodulet på en liste som vist nedenfor i eksemplet:

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

Produktion:

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

Resumé:

  • List index () -metoden hjælper dig med at finde indekset for det givne element. Dette er den nemmeste og ligetil måde at få indekset på.
  • Metoden listeindeks () returnerer indekset for det givne element.
  • Hvis elementet ikke er til stede på listen, kaster metoden index () en fejl, for eksempel ValueError: 'Element' er ikke på listen.
  • Udover den indbyggede listemetode kan du også bruge andre måder til at få indekset som at løbe gennem listen ved hjælp af listeforståelser, ved hjælp af enumerate (), ved hjælp af et filter osv.
  • Brug af for-loop og while-loop til at få flere indekser for et givet element.
  • For at få alle indekserne er en hurtig og ligetil måde at gøre brug af listeforståelse på listen.
  • Listeforståelser er Python-funktioner, der bruges til at oprette nye sekvenser.
  • De hjælper med at reducere længere sløjfer og gøre din kode lettere at læse og vedligeholde.
  • Du kan gøre brug af enumerate for at få alle elementets indekser på en liste.
  • Enumerate () -funktion er en indbygget funktion, der er tilgængelig med python. Det tager input som et iterabelt objekt (dvs. et objekt, der kan sløjfe), og output er et objekt med en tæller til hvert element.
  • Metoden filter () filtrerer den givne liste baseret på den givne funktion.
  • Numpy bibliotek er specielt brugt til arrays. Du kan gøre brug af NumPy for at få indekset for det element, der er angivet på listen.
  • The more_itertools.locate () er endnu et python-bibliotek, der hjælper med at finde indekserne på den givne liste.