Python Elenca indice() con Esempio
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.
Ci sono molti metodi disponibili in un elenco e quello più importante è l'indice().
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 list index() integrato, puoi anche utilizzare altri modi per ottenere l'indice come scorrere l'elenco, utilizzando la comprensione delle liste, enumerate(), metodi di filtro.
Il metodo list index() restituisce il primo indice più basso dell'elemento specificato.
Sintassi
list.index(element, start, end)
parametri
parametri | Descrizione |
---|---|
elemento | L'elemento di cui vuoi ottenere l'indice. |
inizia a | Questo parametro è facoltativo. È possibile definire start: indice per cercare l'elemento. Se non fornito, 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 per indice in un elenco utilizzando l'indice iniziale e quello 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: testare il metodo index() con un elemento che non è presente.
Quando provi a cercare l'indice nell'elenco per un elemento che non è presente, riceverai un errore come 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 che tutti gli indici abbiano il nome "Guru".
Usando il 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.
Nella lista: 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 il 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 farlo:
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. Puoi utilizzare enumerate per ottenere tutti gli indici dell'elemento in un elenco. Prende l'input come un oggetto iterabile (cioè un oggetto che può essere ripetuto in loop) e l'output è un oggetto con un contatore per ciascun elemento.
L'esempio seguente mostra come utilizzare enumerate su un elenco per ottenere tutti gli indici per un dato 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 il 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 è utilizzata specialmente per gli array. Quindi qui utilizzeremo NumPy per ottenere l'indice dell'elemento di cui abbiamo bisogno dall'elenco fornito.
Per utilizzare NumPy, dobbiamo installarlo e importarlo.
Ecco i passaggi per lo stesso:
Passo 1) Installa NumPy
pip install numpy
Passo 2) Importa il modulo NumPy.
import numpy as np
Passo 3) Utilizza np.array per convertire l'elenco 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]
Utilizzando more_itertools.locate() per ottenere l'indice di un elemento in un elenco
more_itertools.locate() aiuta a trovare gli indici dell'elemento nell'elenco. 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 utilizzando pip (gestore pacchetti Python). 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]
Sommario
- Il metodo list index() ti aiuta a trovare l'indice dell'elemento specificato. Questo è il modo più semplice e diretto per ottenere l'indice.
- 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.
- Oltre al metodo dell'elenco integrato, puoi anche utilizzare altri modi per ottenere l'indice come scorrere l'elenco, utilizzare la comprensione dell'elenco, utilizzare enumerate(), utilizzare un filtro, ecc.
- Utilizzo del ciclo for e del ciclo while per ottenere gli indici multipli di un dato elemento.
- 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 utilizzate per creare nuove sequenze.
- Aiutano a ridurre i cicli più lunghi e rendono il codice più facile da leggere e gestire.
- Puoi utilizzare enumerate per ottenere tutti gli indici dell'elemento in un elenco.
- La funzione Enumerate() è una funzione integrata disponibile con Python. Prende l'input come un oggetto iterabile (cioè un oggetto che può essere ripetuto in loop) e l'output è un oggetto con un contatore per ciascun elemento.
- Il metodo filter() filtra l'elenco fornito in base alla funzione fornita.
- La libreria Numpy è utilizzata specialmente per gli array. Puoi utilizzare NumPy per ottenere l'indice dell'elemento indicato nell'elenco.
- more_itertools.locate() è ancora un'altra libreria Python che aiuta a trovare gli indici dell'elenco fornito.