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.

  • ๐Ÿ”˜ Metodo index(): La funzione integrata index() restituisce la prima posizione piรน bassa di un elemento e accetta limiti di inizio e fine opzionali.
  • โ˜‘๏ธ ValueError: La funzione index() genera un'eccezione ValueError quando l'elemento non รจ presente, quindi รจ consigliabile racchiudere la chiamata in un blocco try-except per garantire ricerche sicure.
  • โœ… Tutte le occorrenze: Un ciclo for, un ciclo while o una list comprehension recuperano ogni indice quando un valore si ripete all'interno della lista.
  • ๐Ÿงช Funzioni di supporto integrate: Le funzioni enumerate() e filter() associano un indice a ciascun elemento, offrendo metodi concisi su una singola riga per raccogliere le posizioni corrispondenti.
  • ๏ธ NumPy e altri strumenti iterativi: Le funzioni np.where() e more_itertools.locate() restituiscono in modo efficiente tutti gli indici corrispondenti per set di dati di grandi dimensioni.
  • ๐Ÿค– Flussi di lavoro basati sull'intelligenza artificiale: Le pipeline di apprendimento automatico individuano le posizioni delle etichette e i campioni corrispondenti tramite indice prima che gli array vengano forniti a un modello.

Python Indice elenco()

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]

DOMANDE FREQUENTI

Il metodo index() genera un ValueError quando l'elemento non รจ presente. Racchiudi la chiamata in un blocco try-except, oppure verifica prima l'appartenenza con l'operatore in, in modo che un valore mancante non causi l'arresto anomalo del programma.

Il valore restituito da index() รจ sempre una posizione non negativa, contata a partire dall'inizio. รˆ possibile passare argomenti di inizio o fine negativi per limitare la ricerca, ma index() di per sรฉ non restituisce mai un indice negativo per un elemento trovato.

Sรฌ. index() confronta gli elementi esattamente, quindi 'Guru' e 'guru' vengono trattati come valori diversi. La ricerca con la maiuscola errata genera un ValueError. Normalizza le stringhe con lower() prima della ricerca se hai bisogno di una corrispondenza senza distinzione tra maiuscole e minuscole.

Utilizzare l'operatore in, ad esempio se 'Guru' in my_list. Restituisce True o False senza generare un errore, quindi puoi chiamare index() in tutta sicurezza solo quando l'elemento รจ effettivamente presente nella lista.

Per una singola ricerca, la funzione index() integrata รจ giร  efficiente perchรฉ si ferma alla prima corrispondenza. Per trovare ripetutamente molti valori, รจ necessario creare una mappa del dizionario.ping ciascun valore al suo indice, il che trasforma ogni ricerca in un'operazione veloce a tempo costante.

Python Le liste forniscono il metodo index() ma non hanno il metodo find(). index() genera un ValueError quando l'elemento non รจ presente, mentre find() restituisce -1 per le stringhe. Per le liste, รจ consigliabile gestire l'errore o verificare l'appartenenza con l'operatore in.

Individuare l'indice di un elemento aiuta a mappare le etichette categoriali alle posizioni numeriche, a trovare dove compare una classe prevista o ad allineare le colonne delle caratteristiche prima dell'addestramento. NumPy estende questa funzionalitร  con np.where() per ricerche rapide dell'indice in array e dataset di grandi dimensioni.

Sรฌ. GitHub Copilot e gli assistenti AI agentic generano query di indice, enumerazione e ricerche basate sulla comprensione a partire da un semplice commento, suggeriscono una gestione sicura degli errori per i valori mancanti e rifattorizzano i cicli, anche se รจ comunque consigliabile testare i casi limite e confermare le posizioni restituite.

Riassumi questo post con: