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.

  • 🔘 metoda index(): Funcția index() încorporată returnează prima poziție inferioară a unui element și acceptă limite de început și de sfârșit opționale.
  • ☑️ ValueError: index() generează o ValueError atunci când elementul lipsește, așadar apelul trebuie încadrat în try, cu excepția căutărilor sigure.
  • Toate aparițiile: O buclă for, o buclă while sau o înțelegere a unei liste colectează fiecare index atunci când o valoare se repetă în interiorul listei.
  • 🧪 Ajutoare încorporate: enumerate() și filter() împerechează un index cu fiecare element, oferind modalități concise, pe o singură linie, de a aduna pozițiile corespondente.
  • 🛠️ NumPy și more_itertools: np.where() și more_itertools.locate() returnează eficient toți indexurile corespondente pentru seturi de date mari.
  • 🤖 Fluxuri de lucru bazate pe inteligența artificială: Conductele de învățare automată localizează pozițiile etichetelor și eșantioanele potrivite după index înainte ca matricele să alimenteze un model.

Python Indexul listei()

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]

Întrebări frecvente

Metoda index() generează o eroare ValueError atunci când elementul lipsește. Încadrați apelul într-un bloc try-except sau testați apartenența first test cu operatorul in, astfel încât o valoare lipsă să nu provoace blocarea programului.

Valoarea returnată de index() este întotdeauna o poziție non-negativă, numărată de la început. Puteți transmite argumente negative de început sau de sfârșit pentru a limita căutarea, dar index() în sine nu returnează niciodată un index negativ pentru un element găsit.

Da. index() compară elementele exact, deci 'Guru„' și „guru” sunt tratate ca valori diferite. Căutarea erorii de tip „minuscule/minuscule” generează o eroare ValueError. Normalizați șirurile cu lower() înainte de căutare dacă aveți nevoie de o potrivire fără a ține cont de majuscule/minuscule.

Folosește operatorul „in”, de exemplu dacă „Guru' în my_list. Returnează True sau False fără a genera o eroare, deci puteți apela în siguranță index() numai atunci când elementul este prezent în listă.

Pentru o singură căutare, funcția index() încorporată este deja eficientă deoarece se oprește la prima potrivire. Pentru a găsi mai multe valori în mod repetat, construiți o hartă de dicționar.ping fiecare valoare la indexul său, ceea ce transformă fiecare căutare într-o operație rapidă în timp constant.

Python listele oferă index() dar nu au metoda find(). index() generează o ValueError atunci când elementul este absent, în timp ce șirul find() returnează -1. Pentru liste, detectați eroarea sau verificați apartenența cu operatorul in.

Localizarea indexului unui element ajută la maparea etichetelor categorice la poziții numerice, la găsirea locului unde apare o clasă prezisă sau la alinierea coloanelor de caracteristici înainte de antrenament. NumPy extinde acest lucru cu np.where() pentru căutări rapide ale indexului în tablouri și seturi de date mari.

Da. GitHub Copilot și asistenții AI agențici generează căutări bazate pe index(), enumerate() și comprehension lookup-uri dintr-un comentariu simplu, sugerează gestionarea sigură a erorilor pentru valorile lipsă și refactorizează bucle, deși ar trebui să testați în continuare cazurile limită și să confirmați pozițiile returnate.

Rezumați această postare cu: