Python: trovare l'indice dell'elemento minimo nella lista
La posizione del valore più piccolo all'interno di una lista è indicata dall'indice dell'elemento minimo. Ogni elemento della lista ha un indice distinto che aumenta di uno con ogni elemento aggiuntivo dopo il primo, partendo da zero per il primo elemento. Determinando l'indice dell'elemento minimo, possiamo individuare la posizione esatta del valore più piccolo all'interno della lista. In Python, abbiamo alcune funzioni integrate come min(), index(), argmin(), lambda() e enumerate() per trovare l'indice dell'elemento minimo nell'elenco.
Sintassi
Negli esempi viene utilizzata la seguente sintassi:
min()
min() è una funzione incorporata in Python che può essere utilizzata per restituire il valore minimo.
index()
L'index() è una funzione incorporata in Python che può essere utilizzata per cercare l'elemento dall'elenco e restituire la posizione dell'elemento.
argmin()
Il metodo integrato argmin() di Python aiuta a trovare l'elemento minimo e restituire l'indice di posizione minimo.
lambda
Questa funzione lambda in Python è nota come funzione anonima. Può essere utilizzato quando sono richiesti oggetti funzione.
enumerate()
Enumerate() è una funzione incorporata in Python che consente di tenere traccia delle iterazioni sui cicli.
Utilizzo della funzione indice()
Il programma utilizza indice() per restituire la posizione/indice specifico dell'elemento dall'elenco. Utilizza anche la funzione incorporata min() per ottenere l'elemento indice minimo.
Esempio
Nell'esempio seguente, avviare il programma utilizzando la funzione denominata find_min_index() che accetta il parametro lst (accede alla variabile my_list tramite la chiamata di funzione). Quindi utilizza lo stesso parametro per la funzione integrata min() che troverà il valore minimo dall'elenco e lo memorizzerà nella variabile min_value. Ora applica il metodo integrato index() con la variabile lst per ottenere l'indice di posizione specifico del valore minimo presente nell'elenco. Successivamente, utilizza la funzione return min_index che restituisce l'indice minimo. Andiamo avanti per iniziare a creare la variabile my_list che memorizza alcuni valori interi. Quindi utilizzare la chiamata di funzione nella variabile min_index e utilizzare la stessa variabile come parametro della funzione print() per ottenere il risultato.
def find_min_index(lst):
min_value = min(lst)
min_index = lst.index(min_value)
return min_index
# Create the list
my_list = [50, 2, 19, 11, 27]
min_index = find_min_index(my_list)
print(" The minimum index position:\n", min_index)
Produzione
The minimum index position:
1
Utilizzando enumera()
Il programma utilizza le funzioni integrate enumerate() per tenere traccia dell'iterazione sull'elenco e l'utilizzo del ciclo for aiuta a trovare l'elemento indice minimo.
Esempio
Nell'esempio seguente, per risolvere l'affermazione del problema viene utilizzata la tecnica della ricorsione. Un elenco di numeri viene passato come parametro alla funzione find_min_index. Quindi la funzione min viene utilizzata all'interno della funzione per ottenere il numero minimo nell'elenco di input. Il codice quindi ripete gli indici e i valori dell'elenco di input utilizzando un ciclo for e la funzione enumerate. Il valore di ciascuna coppia indice-valore viene confrontato con il valore minimo. Se il valore è uguale al valore minimo, il metodo restituisce l'indice dell'elemento minimo nell'elenco.
def find_min_index(lst):
min_value = min(lst)
for index, value in enumerate(lst):
if value == min_value:
return index
# Create the list
my_list = [11, 12, 13, 14, 15]
min_index = find_min_index(my_list)
print("The minimum index position from the list:\n", min_index)
Produzione
The minimum index position from the list:
0
Utilizzando la funzione numpy.argmin()
Il programma utilizza la funzione integrata argmin() che segue il modulo denominato numpy per trovare entrambi gli elementi minimi con il suo indice.
Esempio
Nell'esempio seguente, avvia il programma con il modulo numpy e accetta l'oggetto di riferimento come np. Quindi utilizzerà la funzione ricorsiva per utilizzare alcune funzioni integrate come array()[memorizza gli elementi dell'elenco dello stesso tipo] e argmin()[restituisce l'indice minimo con il suo elemento] e lo memorizzerà nelle rispettive variabili. Quindi utilizzare la funzione return per ottenere il risultato desiderato.
import numpy as np
def find_min_index(lst):
arr = np.array(lst)
min_index = np.argmin(arr)
return min_index
# create the list
my_list = [100, 676, 66, 987, 99, 111, 55, 444]
min_index = find_min_index(my_list)
print("The minimum index position from the list:\n", min_index)
Produzione
The minimum index position from the list:
6
Utilizzo di min() con la funzione lambda
Questo è un altro metodo di questa dichiarazione del problema che utilizza tre funzioni integrate per trovare l'indice dell'elemento minimo nell'elenco.
Esempio
Nell'esempio seguente, avvia il programma con una funzione denominata find_min_index che accetta il parametro lst per ottenere l'elenco dei valori. Quindi inizializza la variabile min_index che memorizza il valore utilizzando alcune funzioni integrate: min(), range(), len() e lambda che troveranno il minimo indice dell'elemento nella lista. Successivamente, utilizza la funzione che chiama la variabile my_list come parametro e memorizzala nella variabile min_index. Infine, stampiamo il risultato con l'aiuto della variabile min_index.
def find_min_index(lst):
min_index = min(range(len(lst)), key=lambda i: lst[i])
return min_index
# Create the list
my_list = [5, 2, 9, 1, 7]
min_index = find_min_index(my_list)
print("The minimum index present at:\n", min_index)
Produzione
The minimum index present at:
3
Utilizzando la funzione sorted()
Il programma utilizza la funzione integrata sorted() e accetta due parametri: enumerate() per tenere traccia dell'iterazione sull'elenco e la chiave per impostare la funzione integrata lambda per ordinare l'elemento minimo dall'elenco.
Esempio
Nell'esempio seguente, ci sarà un dato elenco di input che passa attraverso la chiamata di funzione. Quindi la definizione della funzione riceve quell'elenco per lavorare sull'elemento di indice minimo utilizzando la funzione incorporata sorted(). Quindi utilizzare la funzione enumerate all'interno della funzione per creare un elenco di tuple, ciascuna contenente l'indice e il valore di un elemento dall'elenco di input. Ordina questo elenco di tuple in ordine crescente utilizzando la funzione sorted con un parametro chiave che specifica una funzione lambda per estrarre il valore da ciascuna tupla. Con la funzione return, otterrà il valore minimo. Successivamente, crea l'elenco di input nella variabile my_list. Quindi utilizzare la chiamata alla funzione per passare il parametro del valore della lista, ovvero my_list, e memorizzarlo nella variabile min_index. Infine, utilizza la stessa variabile come parametro della funzione print per ottenere il risultato.
def find_min_index(lst):
sorted_list = sorted(enumerate(lst), key=lambda x: x[1])
min_index = sorted_list[0][0]
return min_index
# Create the list
my_list = [11, 7, 18, 20, 12, 0]
min_index = find_min_index(my_list)
print("The minimum index present at:\n",min_index)
Produzione
The minimum index present at:
5
Conclusione
Abbiamo discusso i vari metodi per risolvere questo problema in cui abbiamo imparato alcune funzioni integrate di Python come min(), array(), sorted(), enumerate(), index() e argmin(). Questo articolo ci aiuta a costruire la logica basata sulla ricerca dell'elemento in qualsiasi applicazione di ricerca.