Python List index () con Example

Sommario:

Anonim

Un elenco è un contenitore che memorizza elementi di diversi tipi di dati (interi, float, booleani, stringhe, ecc.) In una sequenza ordinata. È un'importante struttura dati incorporata in Python. I dati vengono scritti tra parentesi quadre ([]) ei valori sono separati da virgola (,).

Gli elementi all'interno della lista vengono indicizzati con il primo elemento a partire dall'indice 0. È possibile apportare modifiche alla lista creata aggiungendo nuovi elementi o aggiornando, eliminando quelli esistenti. Può anche avere elementi duplicati e un elenco nidificato.

Ci sono molti metodi disponibili in un elenco e quello importante è index ().

In questo tutorial imparerai:

  • Indice elenco Python ()
  • Utilizzo di for-loop per ottenere l'indice di un elemento in un elenco
  • Usare while-loop e list.index ()
  • Utilizzo della comprensione delle liste per ottenere l'indice di un elemento in una lista
  • Utilizzo di Enumerate per ottenere l'indice di un elemento in un elenco
  • Utilizzo del filtro per ottenere l'indice di un elemento in un elenco
  • Utilizzo di NumPy per ottenere l'indice di un elemento in un elenco
  • Usare more_itertools.locate () per ottenere l'indice di un elemento in un elenco

Indice elenco Python ()

Il metodo list index () ti aiuta a trovare il primo indice più basso di un dato elemento. Se sono presenti elementi duplicati all'interno dell'elenco, viene restituito il primo indice dell'elemento. Questo è il modo più semplice e diretto per ottenere l'indice.

Oltre al metodo integrato list index (), puoi anche usare altri modi per ottenere l'indice come scorrere l'elenco, usando list comprensione, enumerate (), metodi di filtro.

Il metodo list index () restituisce il primo indice più basso di un dato elemento.

Sintassi

list.index(element, start, end)

Parametri

Parametri Descrizione
elemento L'elemento di cui vuoi ottenere l'indice.
inizio Questo parametro è facoltativo. È possibile definire l'inizio: indice per cercare l'elemento. Se non viene fornito, il valore predefinito è 0.
fine Questo parametro è facoltativo. È possibile specificare l'indice finale per l'elemento da cercare. In caso contrario, viene considerato fino alla fine della lista.

Valore di ritorno

Il metodo list index () restituisce l'indice di un dato elemento. Se l'elemento non è presente nell'elenco, il metodo index () genererà un errore, ad esempio ValueError: "Element" non è nell'elenco.

Esempio: per trovare l'indice di un dato elemento.

Nella lista my_list = ['A', 'B', 'C', 'D', 'E', 'F'], vorremmo conoscere l'indice per gli 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 2The index of element F is 5

Esempio: utilizzo di inizio e fine in index ()

In questo esempio si tenterà di limitare la ricerca dell'indice in un elenco utilizzando l'indice iniziale e 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 startindexprint("The index of element D is ", my_list.index('D', 1))

Produzione:

The index of element C is 2The index of element F is 5The index of element D is 3

Esempio: per testare il metodo index () con un elemento che non è presente.

Quando provi a cercare l'indice nell'elenco di elementi non presenti, 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 print("The index of element C is ", my_list.index('Z'))ValueError: 'Z' is not in list

Utilizzo di for-loop 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 for-loop 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]

Usare while-loop e list.index ()

L'utilizzo di un ciclo while farà scorrere l'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 viene fornito un esempio che mostra come ottenere tutti gli indici utilizzando il ciclo while

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)

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 di un elemento in una lista

Per ottenere tutti gli indici, un modo rapido e diretto consiste nell'utilizzare la comprensione dell'elenco nell'elenco.

Le liste di comprensione sono funzioni Python che vengono usate per creare nuove sequenze (come liste, dizionari, ecc.) Cioè, usando sequenze che sono già state create.

Aiutano a ridurre i cicli più lunghi e semplificano la lettura e la manutenzione del codice.

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 incorporata disponibile con python. È possibile utilizzare enumerate per ottenere tutti gli indici dell'elemento in un elenco. Accetta l'input come un oggetto iterabile (cioè un oggetto che può essere ripetuto) e l'output è un oggetto con un contatore per ogni elemento.

L'esempio seguente mostra come utilizzare enumerate in 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 data. Ogni elemento della lista verrà passato alla funzione e gli elementi richiesti verranno filtrati in base alla condizione data nella funzione.

Usiamo il metodo filter () per ottenere gli indici per l'elemento dato nell'elenco.

L'esempio seguente mostra come utilizzare il filtro in 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]

Utilizzo di NumPy per ottenere l'indice di un elemento in un elenco

La libreria NumPy è usata 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:

Passaggio 1) Installa NumPy

pip install numpy

Passaggio 2) Importa il modulo NumPy.

import numpy as np

Passaggio 3) Utilizzare np.array per convertire l'elenco in un array

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)

Passaggio 4) Ottieni l'indice dell'elemento che desideri, utilizzando np.where ()

item_index = np.where(np_array == 'Guru')[0]

Il codice di lavoro finale con l'output è il seguente:

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)

Produzione:

Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0 3 6]

Usare 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 la versione di python 3.5+. Il pacchetto more_itertools deve essere installato prima per utilizzarlo.

Di seguito sono riportati i passaggi per installare e utilizzare more_itertools

Step1) Installa more_itertools usando pip (gestore di pacchetti python). Il comando è

pip install more_itertools

Passaggio 2) Al termine dell'installazione, importare il modulo di localizzazione come mostrato di seguito

from more_itertools import locate

Ora puoi utilizzare il modulo di localizzazione in un elenco come mostrato di seguito nell'esempio:

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')))

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 di un dato elemento. Questo è il modo più semplice e diretto per ottenere l'indice.
  • Il metodo list index () restituisce l'indice di un dato elemento.
  • 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 scorrere l'elenco, utilizzare le comprensioni di elenco, utilizzare enumerate (), utilizzare un filtro, ecc.
  • Usare for-loop e while-loop per ottenere più indici di un dato elemento.
  • Per ottenere tutti gli indici, un modo rapido e diretto consiste nell'utilizzare la comprensione dell'elenco nell'elenco.
  • Le liste di comprensione sono funzioni Python utilizzate per creare nuove sequenze.
  • Aiutano a ridurre i cicli più lunghi e semplificano la lettura e la manutenzione del codice.
  • È possibile utilizzare enumerate per ottenere tutti gli indici dell'elemento in un elenco.
  • La funzione Enumerate () è una funzione incorporata disponibile con python. Accetta l'input come un oggetto iterabile (cioè un oggetto che può essere ripetuto) e l'output è un oggetto con un contatore per ogni elemento.
  • Il metodo filter () filtra l'elenco fornito in base alla funzione data.
  • La libreria Numpy è usata specialmente per gli array. Puoi utilizzare NumPy per ottenere l'indice dell'elemento fornito nell'elenco.
  • More_itertools.locate () è ancora un'altra libreria python che aiuta a trovare gli indici della lista data.