Python Elenca indice() con Esempio
โก Riepilogo intelligente
Python list index() restituisce la prima posizione di un dato elemento, mentre looping Le costruzioni, le list comprehension, enumerate(), filter(), la libreria NumPy e more_itertools.locate() estendono questa tecnica per raccogliere ogni indice corrispondente in una lista contenente valori duplicati.

Una lista รจ un contenitore che memorizza elementi di diversi tipi di dati (int, float, booleani, stringhe, ecc.) in una sequenza ordinata. ร un'importante struttura dati integrata PythonI dati sono scritti tra parentesi quadre ([]) e i valori sono separati da virgola (,).
Gli elementi all'interno dell'elenco vengono indicizzati con il primo elemento che inizia dall'indice 0. ร possibile apportare modifiche all'elenco creato aggiungendo nuovi elementi o aggiornando, eliminando quelli esistenti. Puรฒ anche contenere elementi duplicati e un elenco nidificato.
Esistono molti metodi disponibili per una lista, e uno dei piรน importanti รจ index().
Python Indice elenco()
Il metodo list index() ti aiuta a trovare il primo indice piรน basso dell'elemento specificato. Se all'interno dell'elenco sono presenti elementi duplicati, viene restituito il primo indice dell'elemento. Questo รจ il modo piรน semplice e diretto per ottenere l'indice.
Oltre al metodo index() integrato nella lista, รจ possibile utilizzare anche altri metodi per ottenere l'indice come looping attraverso la lista, utilizzando list comprehension, enumerate() e metodi filter.
Il metodo list index() restituisce il primo indice piรน basso dell'elemento specificato.
Sintassi
list.index(element, start, end)
Scheda Sintetica
| Scheda Sintetica | Descrizione |
|---|---|
| elemento | L'elemento di cui vuoi ottenere l'indice. |
| inizia a | Questo parametro รจ facoltativo. ร possibile definire l'indice iniziale da cui cercare l'elemento. Se non specificato, il valore predefinito รจ 0. |
| fine | Questo parametro รจ facoltativo. ร possibile specificare l'indice finale per l'elemento da cercare. Se non indicato viene considerato fino alla fine della lista. |
Valore di ritorno
Il metodo list index() restituisce l'indice dell'elemento specificato. Se l'elemento non รจ presente nell'elenco, il metodo index() genererร un errore, ad esempio ValueError: 'Element' non รจ nell'elenco.
Esempio: trovare l'indice dell'elemento specificato.
Nella lista my_list = ['A', 'B', 'C', 'D', 'E', 'F'], vorremmo conoscere l'indice degli elementi C e F.
L'esempio seguente mostra come ottenere l'indice.
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'))
Produzione:
The index of element C is 2 The index of element F is 5
Esempio: utilizzo di inizio e fine in indice()
In questo esempio, proveremo a limitare la ricerca dell'indice in un elenco utilizzando l'indice iniziale e l'indice finale.
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))
Produzione:
The index of element C is 2 The index of element F is 5 The index of element D is 3
Esempio: per testare il metodo index() con un elemento non presente.
Quando si tenta di cercare nell'elenco un elemento non presente, verrร visualizzato un errore come quello mostrato di seguito:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("The index of element C is ", my_list.index('Z'))
Produzione:
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
Utilizzo del ciclo for per ottenere l'indice di un elemento in un elenco
Con il metodo list.index() abbiamo visto che fornisce l'indice dell'elemento che viene passato come argomento.
Ora considera l'elenco come: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Il nome 'Guru' รจ presente 3 volte nell'indice e voglio tutti gli indici con il nome 'Guru'.
Utilizzando un ciclo for dovremmo essere in grado di ottenere piรน indici come mostrato nell'esempio seguente.
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)
Produzione:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Utilizzando while-loop e list.index()
L'utilizzo di un ciclo while eseguirร il ciclo dell'elenco fornito per ottenere tutti gli indici dell'elemento specificato.
Nell'elenco: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], abbiamo bisogno di tutti gli indici dell'elemento 'Guru'.
Di seguito รจ riportato un esempio che mostra come ottenere tutti gli indici utilizzando un ciclo 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)
Produzione:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] The index for element Guru is [0, 3, 6]
Utilizzo della comprensione delle liste per ottenere l'indice degli elementi in una lista
Per ottenere tutti gli indici, un modo rapido e semplice รจ utilizzare la comprensione delle liste nell'elenco.
Le comprensioni dell'elenco lo sono Python funzioni che servono per creare nuove sequenze (come elenchi, dizionari, ecc.), ovvero utilizzando sequenze giร create.
Aiutano a ridurre i cicli piรน lunghi e rendono il codice piรน facile da leggere e gestire.
L'esempio seguente mostra come fare:
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)
Produzione:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Utilizzo di Enumerate per ottenere l'indice di un elemento in un elenco
La funzione Enumerate() รจ una funzione integrata disponibile con Pythonร possibile utilizzare la funzione `enumerate` per ottenere tutti gli indici degli elementi in una lista. Questa funzione accetta come input un oggetto iterabile (ovvero un oggetto su cui รจ possibile eseguire un ciclo) e restituisce un oggetto con un contatore per ogni elemento.
L'esempio seguente mostra come utilizzare il metodo enumerate su una lista per ottenere tutti gli indici di un determinato elemento.
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'])
Produzione:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Utilizzo del filtro per ottenere l'indice di un elemento in un elenco
Il metodo filter() filtra l'elenco fornito in base alla funzione fornita. Ogni elemento dell'elenco verrร passato alla funzione e gli elementi richiesti verranno filtrati in base alla condizione fornita nella funzione.
Usiamo il metodo filter() per ottenere gli indici per l'elemento specificato nell'elenco.
L'esempio seguente mostra come utilizzare un filtro su un elenco.
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)
Produzione:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Utilizzando NumPy per ottenere l'indice di un elemento in un elenco
La libreria NumPy รจ particolarmente indicata per gli array. Pertanto, in questo caso, utilizzeremo NumPy per ottenere l'indice dell'elemento desiderato dall'elenco fornito.
Per utilizzare NumPy, dobbiamo installarlo e importarlo.
Ecco i passaggi da seguire:
Passo 1) Installa NumPy
pip install numpy
Passo 2) Importa il modulo NumPy.
import numpy as np
Passo 3) Utilizza np.array per convertire la lista in un array.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list)
Passo 4) Ottieni l'indice dell'elemento desiderato utilizzando np.where().
item_index = np.where(np_array == 'Guru')[0]
Il codice funzionante finale con output รจ il seguente:
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)
Produzione:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0 3 6]
Utilizzo di more_itertools.locate() per ottenere l'indice di un elemento in una lista
La funzione more_itertools.locate() aiuta a trovare gli indici dell'elemento nella lista. Questo modulo funzionerร con Python versione 3.5+. Il pacchetto more_itertools deve essere installato prima per poterlo utilizzare.
Di seguito sono riportati i passaggi per installare e utilizzare more_itertools:
Passo 1) Installa more_itertools usando pip (Python gestore pacchetti). Il comando รจ
pip install more_itertools
Passo 2) Una volta completata l'installazione, importare il file individuare modulo come mostrato di seguito.
from more_itertools import locate
Ora puoi utilizzare il modulo localizza su un elenco come mostrato di seguito nell'esempio:
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')))
Produzione:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
