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 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 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 tutti gli indici con 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]

Sintesi

  • 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 di elenco integrato, puoi anche utilizzare altri modi per ottenere l'indice come looping attraverso la lista, utilizzando le list comprehension, utilizzando enumerate(), utilizzando 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.

Riassumi questo post con: