O listă este un container care stochează articole de diferite tipuri de date (ints, floats, Boolean, șiruri etc.) într-o secvență ordonată. Este o structură de date importantă, care este încorporată în Python. Datele sunt scrise între paranteze pătrate ([]), iar valorile sunt separate prin virgulă (,).
Elementele din listă sunt indexate cu primul element începând cu indexul 0. Puteți face modificări în lista creată adăugând elemente noi sau actualizând, ștergând cele existente. Poate avea, de asemenea, elemente duplicate și o listă imbricată.
Există multe metode disponibile pe o listă, iar una dintre cele mai importante este indexul ().
În acest tutorial, veți învăța:
- Indexul Python List ()
- Folosind for-loop pentru a obține indexul unui element dintr-o listă
- Utilizarea while-loop și list.index ()
- Utilizarea înțelegerii listei pentru a obține indexul elementului dintr-o listă
- Folosind Enumerate pentru a obține indexul unui element dintr-o listă
- Utilizarea filtrului pentru a obține indexul unui element dintr-o listă
- Utilizarea NumPy pentru a obține indexul unui element dintr-o listă
- Folosind more_itertools.locate () pentru a obține indexul unui element dintr-o listă
Indexul Python List ()
Metoda list index () vă ajută să găsiți primul index cel mai mic al elementului dat. Dacă există elemente duplicate în listă, primul index al elementului este returnat. Acesta este cel mai simplu și simplu mod de a obține indicele.
Pe lângă metoda încorporată list index (), puteți utiliza și alte modalități de a obține indexul, cum ar fi să parcurgeți lista, utilizând înțelegeri ale 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. |
start | Acest parametru este opțional. Puteți defini start: index pentru a căuta elementul. Dacă nu este dată, valoarea implicită este 0. |
Sfârșit | 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. |
Valoare returnată
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 se află î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 elementele C și F.
Exemplul de mai jos arată cum se obține 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 2The index of element F is 5
Exemplu: Folosind start și end î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 startindexprint("The index of element D is ", my_list.index('D', 1))
Ieșire:
The index of element C is 2The index of element F is 5The 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 index în listă pentru elementul 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, inprint("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ă oferă indexul elementului care este transmis ca argument.
Acum, considerați lista ca: lista_mea mea = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Numele „Guru” este prezent de 3 ori în index și vreau toate indexurile cu numele „Guru”.
Folosind for-loop ar trebui să putem obține mai mulți indici 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]
Utilizarea while-loop și list.index ()
Utilizarea unei bucle de timp va parcurge lista dată pentru a obține toți indicii elementului dat.
În listă: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], avem nevoie de toți indicii elementului 'Guru'.
Mai jos este prezentat un exemplu care arată cum să obțineți toți indicii folosind 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)
Ieșire:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']The index for element Guru is [0, 3, 6]
Utilizarea înțelegerii listei pentru a obține indexul elementului dintr-o listă
Pentru a obține toți indicii, o modalitate rapidă și simplă este de a utiliza înțelegerea listei din listă.
Înțelegerile listelor sunt funcții Python care sunt utilizate pentru crearea de secvențe noi (cum ar fi liste, dicționare etc.), adică folosind secvențe care au fost deja create.
Acestea ajută la reducerea buclelor mai lungi și vă fac codul mai ușor de citit și întreținut.
Următorul exemplu arată cum să o faceți:
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 indicii elementului dintr-o listă. Prinde intrarea ca obiect iterabil (adică un obiect care poate fi buclat), iar ieșirea este un obiect cu un contor pentru fiecare element.
Următorul exemplu arată cum se folosește enumerarea dintr-o listă pentru a obține toți indicii 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ă pe baza funcției date. Fiecare element al listei va fi transmis funcției, iar elementele necesare vor fi filtrate pe baza condiției date în funcție.
Să folosim metoda filter () pentru a obține indexurile pentru elementul dat din listă.
Următorul exemplu arată cum să folosiți filtrul dintr-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]
Utilizarea NumPy pentru a obține indexul unui element dintr-o listă
Biblioteca NumPy este folosită special pentru tablouri. Așadar, aici vom folosi NumPy pentru a obține indexul elementului de care avem nevoie din lista dată.
Pentru a utiliza NumPy, trebuie să-l instalăm și să-l importăm.
Iată pașii pentru aceeași:
Pasul 1) Instalați NumPy
pip install numpy
Pasul 2) Importați modulul NumPy.
import numpy as np
Pasul 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)
Pasul 4) Obțineți indexul elementului dorit, folosindnp.where ()
item_index = np.where(np_array == 'Guru')[0]
Codul final de lucru cu ieșire este după cum urmează:
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)
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 indexurilor elementului din listă. Acest modul va funcționa cu versiunea python 3.5+. Pachetul more_itertools trebuie instalat mai întâi pentru a-l utiliza.
Urmează pașii de instalare și utilizare a more_itertools
Pasul 1) Instalați more_itertools folosind pip (managerul de pachete python). Comanda este
pip install more_itertools
Pasul 2) După instalare, importați modulul de localizare așa cum se arată mai jos
from more_itertools import locate
Acum puteți utiliza modulul de localizare pe o listă, așa cum se arată mai jos în exemplu:
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')))
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 indicele.
- 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 listei încorporate, puteți utiliza și alte modalități de a obține indexul, cum ar fi să parcurgeți lista, utilizând înțelegerile listei, folosind enumerate (), folosind un filtru etc.
- Utilizarea for-loop și while-loop pentru a obține indicii multipli ai unui element dat.
- Pentru a obține toți indicii, o modalitate rapidă și simplă este de a utiliza înțelegerea listei din listă.
- Înțelegerile de listă sunt funcții Python care sunt utilizate pentru crearea de secvențe noi.
- Acestea ajută la reducerea buclelor mai lungi și vă fac codul mai ușor de citit și întreținut.
- Puteți folosi enumerate pentru a obține toți indicii elementului dintr-o listă.
- Funcția Enumerate () este o funcție încorporată disponibilă cu python. Prinde intrarea ca obiect iterabil (adică un obiect care poate fi buclat), iar ieșirea este un obiect cu un contor pentru fiecare element.
- Metoda filter () filtrează lista dată pe baza funcției date.
- Biblioteca Numpy este special utilizată pentru tablouri. Puteți utiliza NumPy pentru a obține indexul elementului dat în listă.
- More_itertools.locate () este încă o altă bibliotecă python care ajută la găsirea indexurilor listei date.