Python Listează index() cu Exemplu
⚡ Rezumat inteligent
Python list index() returnează prima poziție a unui element dat, în timp ce looping construcții, înțelegeri de liste, enumerate(), filter(), biblioteca NumPy și more_itertools.locate() extind această tehnică pentru a colecta fiecare index potrivit dintr-o listă care conține valori duplicate.

O listă este un container care stochează elemente de diferite tipuri de date (ints, floats, boolean, șiruri de caractere etc.) într-o secvență ordonată. Este o structură de date importantă care este încorporată Python. Datele sunt scrise între paranteze drepte ([]), iar valorile sunt separate prin virgulă (,).
Articolele din interiorul listei sunt indexate cu primul element începând cu indicele 0. Puteți face modificări în lista creată adăugând elemente noi sau actualizând, ștergând cele existente. De asemenea, poate avea articole duplicate și o listă imbricată.
Există multe metode disponibile pe o listă, iar una dintre cele importante este index().
Python Indexul listei()
Metoda list index() vă ajută să găsiți primul indice cel mai mic al elementului dat. Dacă în listă există elemente duplicat, se returnează primul index al elementului. Acesta este cel mai simplu și simplu mod de a obține indexul.
Pe lângă metoda list index() încorporată, puteți utiliza și alte metode pentru a obține indexul, cum ar fi looping prin listă, folosind înțelegerea listelor, enumerate(), metode de filtrare.
Metoda list index() returnează primul index cel mai mic al elementului dat.
Sintaxă
list.index(element, start, end)
parametrii
| parametrii | Descriere |
|---|---|
| element | Elementul pe care doriți să obțineți indexul. |
| Începe | Acest parametru este opțional. Puteți defini indexul de început pentru căutarea elementului. Dacă nu este specificat, valoarea implicită este 0. |
| capăt | Acest parametru este opțional. Puteți specifica indexul final pentru elementul de căutat. Dacă nu este dat, se ia în considerare până la sfârșitul listei. |
Valoarea retur
Metoda list index() returnează indexul elementului dat. Dacă elementul nu este prezent în listă, metoda index() va arunca o eroare, de exemplu, ValueError: „Element” nu este în listă.
Exemplu: Pentru a găsi indexul elementului dat.
În lista my_list = ['A', 'B', 'C', 'D', 'E', 'F'], dorim să cunoaștem indexul pentru elementele C și F.
Exemplul de mai jos arată cum să obțineți indexul.
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'))
ieșire:
The index of element C is 2 The index of element F is 5
Exemplu: Folosind început și sfârșit în index()
În acest exemplu, vom încerca să limităm căutarea indexului într-o listă folosind indexul de început și de sfârșit.
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))
ieșire:
The index of element C is 2 The index of element F is 5 The index of element D is 3
Exemplu: Pentru a testa metoda index() cu un element care nu este prezent.
Când încercați să căutați în listă un element care nu este prezent, veți primi o eroare, așa cum se arată mai jos:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("The index of element C is ", my_list.index('Z'))
ieșire:
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
Folosind for-loop pentru a obține indexul unui element dintr-o listă
Cu metoda list.index(), am văzut că dă indexul elementului care este transmis ca argument.
Acum considerăm lista astfel: my_list = ['Guru„Siya”, „Tiya”, „Guru„Daksh”, „Riya”,GuruNumeleGuru' este prezent de 3 ori în index și vreau toți indexurile cu numele 'Guru".
Folosind bucla for ar trebui să putem obține indecși multipli, așa cum se arată în exemplul de mai jos.
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)
ieșire:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Folosind while-loop și list.index()
Folosirea unei bucle while va parcurge lista dată pentru a obține toți indecșii elementului dat.
În listă: lista_mea = ['Guru„Siya”, „Tiya”, „Guru„Daksh”, „Riya”,Guru'], avem nevoie de toți indexurile elementului 'Guru".
Mai jos este un exemplu care arată cum se obțin toți indexurile folosind o buclă while.
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)
ieșire:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] The index for element Guru is [0, 3, 6]
Utilizarea listei de înțelegere pentru a obține indexul elementului dintr-o listă
Pentru a obține toți indicii, o modalitate rapidă și simplă este să utilizați înțelegerea listei pe listă.
Listele de înțelegere sunt Python funcții care sunt folosite pentru a crea secvențe noi (cum ar fi liste, dicționare etc.), adică, folosind secvențe care au fost deja create.
Ele ajută la reducerea buclelor mai lungi și fac codul mai ușor de citit și întreținut.
Următorul exemplu arată cum se face acest lucru:
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)
ieșire:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Folosind Enumerate pentru a obține indexul unui element dintr-o listă
Funcția Enumerate() este o funcție încorporată disponibilă cu Python. Puteți folosi enumerate pentru a obține toți indecșii elementului dintr-o listă. Ia intrarea ca obiect iterabil (adică, un obiect care poate fi buclat), iar rezultatul este un obiect cu un numărător pentru fiecare articol.
Următorul exemplu arată cum se utilizează enumerate într-o listă pentru a obține toți indexurile pentru un anumit 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'])
ieșire:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Utilizarea filtrului pentru a obține indexul unui element dintr-o listă
Metoda filter() filtrează lista dată în funcție de funcția dată. Fiecare element al listei va fi trecut în funcție, iar elementele necesare vor fi filtrate în funcție de condiția dată în funcție.
Să folosim metoda filter() pentru a obține indicii pentru elementul dat din listă.
Următorul exemplu arată cum se utilizează un filtru într-o listă.
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)
ieșire:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Folosind NumPy pentru a obține indexul unui element dintr-o listă
Biblioteca NumPy este special utilizată pentru tablouri. Așadar, aici vom folosi NumPy pentru a obține indexul elementului de care avem nevoie din lista dată.
Pentru a folosi NumPy, trebuie să îl instalăm și să îl importăm.
Iată pașii pentru același lucru:
Pas 1) Instalați NumPy
pip install numpy
Pas 2) Importați modulul NumPy.
import numpy as np
Pas 3) Folosește np.array pentru a converti o listă într-un array.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list)
Pas 4) Obțineți indexul elementului dorit folosind np.where().
item_index = np.where(np_array == 'Guru')[0]
Codul final de lucru cu ieșire este după cum urmează:
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)
ieșire:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0 3 6]
Folosirea more_itertools.locate() pentru a obține indexul unui element dintr-o listă
Funcția more_itertools.locate() ajută la găsirea indexurilor elementului din listă. Acest modul va funcționa cu Python versiunea 3.5+. Pachetul more_itertools trebuie instalat mai întâi pentru a-l folosi.
Următorii sunt pașii pentru instalarea și utilizarea more_itertools:
Pas 1) Instalați more_itertools folosind pip (Python manager de pachete). Comanda este
pip install more_itertools
Pas 2) Odată ce instalarea este finalizată, importați localiza modul așa cum se arată mai jos.
from more_itertools import locate
Acum puteți utiliza modul de localizare pe o listă, așa cum se arată mai jos în exemplu:
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')))
ieșire:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
