Python List index() med Eksempel
En liste er en beholder som lagrer elementer av forskjellige datatyper (ints, float, boolsk, strenger, etc.) i en ordnet rekkefølge. Det er en viktig datastruktur som er innebygd Python. Dataene skrives innenfor hakeparenteser ([]), og verdiene er atskilt med komma(,).
Elementene i listen indekseres med det første elementet som starter på indeks 0. Du kan gjøre endringer i den opprettede listen ved å legge til nye elementer eller ved å oppdatere, slette de eksisterende. Den kan også ha dupliserte elementer og en nestet liste.
Det er mange metoder tilgjengelig på en liste, og av den viktige er index().
Python Listeindeks()
List index()-metoden hjelper deg med å finne den første laveste indeksen til det gitte elementet. Hvis det er dupliserte elementer i listen, returneres den første indeksen til elementet. Dette er den enkleste og enkleste måten å få indeksen på.
I tillegg til den innebygde list index()-metoden, kan du også bruke andre måter for å få indeksen som å gå gjennom listen, ved å bruke listeforståelser, enumerate(), filtermetoder.
List index()-metoden returnerer den første laveste indeksen for det gitte elementet.
syntax
list.index(element, start, end)
Parametre
| Parametre | Tekniske beskrivelser |
|---|---|
| element | Elementet du ønsker skal hente indeksen. |
| Begynn | Denne parameteren er valgfri. Du kan definere start:-indeksen for å søke etter elementet. Hvis ikke gitt, er standardverdien 0. |
| slutt | Denne parameteren er valgfri. Du kan spesifisere sluttindeksen for elementet som skal søkes i. Hvis det ikke er gitt, vurderes det til slutten av listen. |
Returverdi
List index()-metoden returnerer indeksen til det gitte elementet. Hvis elementet ikke er til stede i listen, vil index()-metoden gi en feil, for eksempel ValueError: 'Element' er ikke i listen.
Eksempel: For å finne indeksen til det gitte elementet.
I listen my_list = ['A', 'B', 'C', 'D', 'E', 'F'], vil vi gjerne vite indeksen for element C og F.
Eksemplet nedenfor viser hvordan du får tak i indeksen.
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'))
Utgang:
The index of element C is 2 The index of element F is 5
Eksempel: Bruk av start og slutt i index()
I dette eksemplet vil forsøke å begrense søk etter indeks i en liste ved hjelp av start- og sluttindeks.
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))
Utgang:
The index of element C is 2 The index of element F is 5 The index of element D is 3
Eksempel: For å teste index()-metoden med et element som ikke er tilstede.
Når du prøver å søke etter indeks i listen for element som ikke er til stede, får du en feilmelding 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'))
Utgang:
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
Bruke for-loop for å få indeksen til et element i en liste
Med metoden list.index() har vi sett at den gir indeksen til elementet som sendes som argument.
Betrakt listen som: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] . Navnet 'Guru' er til stede 3 ganger i indeksen, og jeg vil ha alle indeksene med navnet 'Guru'.
Ved å bruke 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)
Utgang:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Bruke while-loop og list.index()
Bruk av en while-løkke vil gå gjennom listen gitt for å få alle indeksene til det gitte elementet.
I listen: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], trenger vi alle indeksene til elementet 'Guru'.
Nedenfor er et eksempel som viser hvordan du får alle indeksene ved å bruke 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)
Utgang:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] The index for element Guru is [0, 3, 6]
Bruke listeforståelse for å få indeksen til element i en liste
For å få alle indeksene er en rask og grei måte å benytte seg av listeforståelse på listen.
Listeforståelser er Python funksjoner som brukes til å lage nye sekvenser (som lister, ordbøker osv.), dvs. bruke sekvenser som allerede er opprettet.
De bidrar til å redusere lengre sløyfer og gjør koden din enklere å lese og vedlikeholde.
Følgende eksempel viser hvordan du gjø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)
Utgang:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Bruke Enumerate for å få indeksen til et element i en liste
Enumerate()-funksjonen er en innebygd funksjon tilgjengelig med python. Du kan bruke enumerate for å få alle indeksene til elementet i en liste. Den tar input som et gjentakelig objekt (dvs. et objekt som kan loopes), og utdata er et objekt med en teller til hvert element.
Følgende eksempel viser hvordan du bruker enumerate på en liste for å få alle indeksene for gitt 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'])
Utgang:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Bruke filter for å få indeksen til et element i en liste
Filter()-metoden filtrerer den gitte listen basert på funksjonen som er gitt. Hvert element i listen vil bli sendt til funksjonen, og de nødvendige elementene vil bli filtrert basert på betingelsen gitt i funksjonen.
La oss bruke filter()-metoden for å få indeksene for det gitte elementet i listen.
Følgende eksempel viser hvordan du bruker 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)
Utgang:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Bruke NumPy for å få indeksen til et element i en liste
NumPy-biblioteket er spesielt brukt for arrays. Så her vil bruke NumPy for å få indeksen til elementet vi trenger fra listen gitt.
For å bruke NumPy må vi installere det og importere det.
Her er trinnene for det samme:
Trinn 1) Installer NumPy
pip install numpy
Trinn 2) Importer NumPy-modulen.
import numpy as np
Trinn 3) Benytt deg av np.array for å konvertere liste til en matrise
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list)
Trinn 4) Få indeksen til elementet du ønsker, ved å bruke np.where()
item_index = np.where(np_array == 'Guru')[0]
Den endelige arbeidskoden med utdata er som følger:
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)
Utgang:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0 3 6]
Bruke more_itertools.locate() for å få indeksen til et element i en liste
More_itertools.locate() hjelper til med å finne indeksene til elementet i listen. Denne modulen vil fungere med python versjon 3.5+. Pakken more_itertools må installeres først for å kunne bruke den.
Følgende er trinnene for å installere og bruke more_itertools
Trinn 1) Installer more_itertools ved å bruke pip (python-pakkebehandling). Kommandoen er
pip install more_itertools
Trinn 2) Når installasjonen er ferdig, importerer du finne modul som vist nedenfor
from more_itertools import locate
Nå kan du bruke lokaliseringsmodulen på en liste som vist nedenfor i eksempelet:
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')))
Utgang:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Sammendrag
- List index()-metoden hjelper deg med å finne indeksen til det gitte elementet. Dette er den enkleste og enkleste måten å få indeksen på.
- List index()-metoden returnerer indeksen til det gitte elementet.
- Hvis elementet ikke er til stede i listen, vil index()-metoden gi en feil, for eksempel ValueError: 'Element' er ikke i listen.
- I tillegg til den innebygde listemetoden, kan du også bruke andre måter å få indeksen på som å gå gjennom listen, bruke listeforståelser, bruke enumerate(), bruke et filter, etc.
- Bruke for-loop og while-loop for å få flere indekser for et gitt element.
- For å få alle indeksene er en rask og grei måte å benytte seg av listeforståelse på listen.
- Listeforståelser er Python funksjoner som brukes til å lage nye sekvenser.
- De bidrar til å redusere lengre sløyfer og gjør koden din enklere å lese og vedlikeholde.
- Du kan bruke enumerate for å få alle indeksene til elementet i en liste.
- Enumerate()-funksjonen er en innebygd funksjon tilgjengelig med python. Den tar inndata som et gjentakbart objekt (dvs. et objekt som kan løkkes), og utdata er et objekt med en teller til hvert element.
- Filter()-metoden filtrerer den gitte listen basert på funksjonen som er gitt.
- Numpy-biblioteket er spesielt brukt for arrays. Du kan bruke NumPy for å få indeksen til elementet gitt i listen.
- More_itertools.locate() er nok et python-bibliotek som hjelper til med å finne indeksene til listen som er gitt.
