En liste er en container som lagrer gjenstander av forskjellige datatyper (ints, floats, boolsk, strenger, etc.) i en ordnet sekvens. Det er en viktig datastruktur som er innebygd i Python. Dataene er skrevet i hakeparenteser ([]), og verdiene er atskilt med komma (,).
Elementene i listen er indeksert med det første elementet som starter ved indeks 0. Du kan gjøre endringer i den opprettede listen ved å legge til nye elementer eller ved å oppdatere, slette de eksisterende. Det kan også ha dupliserte elementer og en nestet liste.
Det er mange metoder tilgjengelig på en liste, og av den viktigste er indeksen ().
I denne opplæringen lærer du:
- Python List-indeks ()
- Bruker for-loop for å få indeksen til et element i en liste
- Bruker mens-loop og list.index ()
- Bruke listeforståelse for å få elementets indeks i en liste
- Bruk Enumerate for å få indeksen til et element i en liste
- Bruke filter for å få indeksen til et element i en liste
- Bruke NumPy for å få indeksen til et element i en liste
- Bruk more_itertools.locate () for å få indeksen til et element i en liste
Python List-indeks ()
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 greieste måten å få indeksen på.
Foruten den innebygde listen index () -metoden, kan du også bruke andre måter å få indeksen som å løpe gjennom listen ved å bruke listeforståelser, oppregne (), filtermetoder.
List index () -metoden returnerer den første laveste indeksen til det gitte elementet.
Syntaks
list.index(element, start, end)
Parametere
Parametere | Beskrivelse |
element | Elementet du vil få indeksen. |
start | Denne parameteren er valgfri. Du kan definere start: indeks 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. Hvis ikke 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 indeks () -metoden kaste en feil, for eksempel ValueError: 'Element' er ikke i listen.
Eksempel: Å 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 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'))
Produksjon:
The index of element C is 2The index of element F is 5
Eksempel: Bruke start og slutt i indeks ()
I dette eksemplet vil du prøve å begrense søket 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 startindexprint("The index of element D is ", my_list.index('D', 1))
Produksjon:
The index of element C is 2The index of element F is 5The index of element D is 3
Eksempel: Å teste indeks () -metoden med et element som ikke er tilstede.
Når du prøver å søke etter indeks i listen etter element som ikke er tilstede, vil du få en feil 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'))
Produksjon:
Traceback (most recent call last):File "display.py", line 3, inprint("The index of element C is ", my_list.index('Z'))ValueError: 'Z' is not in list
Bruker for-loop for å få indeksen til et element i en liste
Med list.index () -metoden har vi sett at den gir indeksen til elementet som sendes som et argument.
Vurder nå 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 hjelp av 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)
Produksjon:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Bruker mens-loop og list.index ()
Ved å bruke en while-loop vil du gå gjennom listen som er gitt for å få alle indeksene til det gitte elementet.
På listen: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], trenger vi alle indeksene til elementet 'Guru'.
Nedenfor er et eksempel vist hvordan du får alle indeksene ved bruk av 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)
Produksjon:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']The index for element Guru is [0, 3, 6]
Bruke listeforståelse for å få elementets indeks i en liste
For å få alle indeksene er en rask og grei måte å benytte seg av listeforståelse på listen.
Listeforståelse er Python-funksjoner som brukes til å lage nye sekvenser (for eksempel lister, ordbøker osv.), Dvs. bruke sekvenser som allerede er opprettet.
De hjelper med å redusere lengre sløyfer og gjør koden lettere å 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)
Produksjon:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Bruk Enumerate for å få indeksen til et element i en liste
Enumerate () -funksjonen er en innebygd funksjon som er tilgjengelig med python. Du kan bruke enumerate for å få alle indeksene til elementet i en liste. Det tar input som et iterabelt objekt (dvs. et objekt som kan sløyfes), og utgangen er et objekt med en teller til hvert element.
Følgende eksempel viser hvordan du bruker opptelling 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'])
Produksjon:
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
Metoden filter () filtrerer den gitte listen basert på den gitte funksjonen. Hvert element i listen vil bli sendt til funksjonen, og elementene som kreves, blir filtrert basert på tilstanden 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)
Produksjon:
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 til matriser. Så her vil vi bruke NumPy for å få indeksen til elementet vi trenger fra listen gitt.
For å gjøre bruk av NumPy, må vi installere den og importere den.
Her er trinnene for det samme:
Trinn 1) Installer NumPy
pip install numpy
Trinn 2) Importer NumPy-modulen.
import numpy as np
Trinn 3) Bruk np.array for å konvertere listen 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 hjelp av np.where ()
item_index = np.where(np_array == 'Guru')[0]
Den endelige arbeidskoden med utdata 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)
Produksjon:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0 3 6]
Bruk more_itertools.locate () for å få indeksen til et element i en liste
The more_itertools.locate () hjelper deg med å finne indeksene til elementet i listen. Denne modulen fungerer med python versjon 3.5+. Pakken more_itertools må installeres først for å gjøre bruk av den.
Følgende er trinnene for å installere og bruke more_itertools
Trinn 1) Installer more_itertools ved hjelp av pip (python pakkebehandling). Kommandoen er
pip install more_itertools
Trinn 2) Når installasjonen er ferdig, importerer du lokaliseringsmodulen som vist nedenfor
from more_itertools import locate
Nå kan du bruke lokaliseringsmodulen 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')))
Produksjon:
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 greieste måten å få indeksen på.
- List index () -metoden returnerer indeksen til det gitte elementet.
- Hvis elementet ikke er til stede i listen, vil indeks () metoden kaste en feil, for eksempel ValueError: 'Element' er ikke i listen.
- Foruten 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.
- Bruker 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åelse er Python-funksjoner som brukes til å lage nye sekvenser.
- De hjelper med å redusere lengre sløyfer og gjør koden lettere å lese og vedlikeholde.
- Du kan bruke enumerate for å få alle indeksene til elementet i en liste.
- Enumerate () -funksjonen er en innebygd funksjon som er tilgjengelig med python. Det tar input som et iterabelt objekt (dvs. et objekt som kan sløyfes), og utgangen er et objekt med en teller til hvert element.
- Metoden filter () filtrerer den gitte listen basert på den gitte funksjonen.
- Numpy bibliotek er spesielt brukt til matriser. Du kan bruke NumPy for å få indeksen til elementet gitt i listen.
- The more_itertools.locate () er enda et pythonbibliotek som hjelper til med å finne indeksene til listen som er gitt.