Python Listează index() cu Exemplu

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 cea mai importantă 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 folosi și alte modalități de a obține indexul, cum ar fi trecerea în buclă prin listă, folosind metode de înțelegere a listei, 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 start: index pentru a căuta elementul. Dacă nu este dată, 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'] , am dori să știm indexul pentru elementul 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, se va încerca să limiteze căutarea indexului într-o listă folosind indexul de început și 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 un index în listă pentru un element care nu este prezent, veți obține 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 luați în considerare lista ca: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] . Numele „Guru” este prezent de 3 ori în index și vreau ca toți indexurile cu numele „Guru”.

Folosind for-loop, ar trebui să putem obține mai mulți indecși, 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 lista: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], avem nevoie de toți indicii elementului 'Guru'.

Mai jos este dat un exemplu care arată cum să obțineți toți indecșii folosind 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)

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:

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 să utilizați enumerate pe o listă pentru a obține toți indecșii pentru elementul dat.

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 să utilizați filtrul pe 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 folosită special pentru matrice. Deci 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) Utilizați np.array pentru a converti lista într-o matrice

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]

Folosind more_itertools.locate() pentru a obține indexul unui element dintr-o listă

More_itertools.locate() ajută la găsirea indicilor elementului din listă. Acest modul va funcționa cu versiunea python 3.5+. Pachetul more_itertools trebuie instalat mai întâi pentru a-l folosi.

Următorii sunt pașii pentru a instala și utiliza more_itertools

Pasul 1) Instalați more_itertools folosind pip (manager de pachete Python). 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]

Rezumat

  • Metoda list index() vă ajută să găsiți indexul elementului dat. Acesta este cel mai simplu și simplu mod de a obține indexul.
  • 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ă.
  • Pe lângă metoda listă încorporată, puteți folosi și alte modalități de a obține indexul, cum ar fi trecerea în buclă prin listă, utilizarea listei de înțelegere, utilizarea enumerate(), utilizarea unui filtru etc.
  • Folosind bucla for și bucla while pentru a obține mai mulți indecși ai unui element dat.
  • 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.
  • Ele ajută la reducerea buclelor mai lungi și fac codul mai ușor de citit și întreținut.
  • Puteți folosi enumerate pentru a obține toți indecșii elementului dintr-o listă.
  • Funcția Enumerate() este o funcție încorporată disponibilă cu python. 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.
  • Metoda filter() filtrează lista dată în funcție de funcția dată.
  • Biblioteca Numpy este folosită special pentru matrice. Puteți folosi NumPy pentru a obține indexul elementului din listă.
  • More_itertools.locate() este încă o altă bibliotecă Python care ajută la găsirea indecșilor listei date.