Il metodo max() funziona solo se passi una sequenza con almeno un valore nel metodo.
Se provi a trovare l’elemento più grande in un elenco vuoto, riscontrerai l’errore "ValueError: max()
arg is a empty sequence".
In questa guida, parliamo di cosa significa questo errore e perché potresti riscontrarlo. Vediamo un esempio per aiutarti a capire come risolvere questo errore.
ValueError: max() arg è una sequenza vuota
Il max()
metodo ti consente di trovare l’elemento più grande in un elenco. è simile al metodo min()
che trova l’elemento più piccolo in un elenco.
Perché questo metodo funzioni, max()
necessita di una sequenza con almeno un valore. Questo perché non puoi trovare l’elemento più grande in un elenco se non ci sono elementi. L’elemento più grande non esiste perché non ci sono elementi in cui cercare.
Una variazione di "ValueError: max()
arg è una sequenza vuota" viene trovato un errore quando si tenta di passare una lista vuota nel metodo min()
. Questo errore è "ValueError: min()
arg è una sequenza vuota". Questo errore min()
si verifica per lo stesso motivo: non è possibile trovare il valore più piccolo in un elenco senza valori.
Uno scenario di esempio
Noi‚Äô sta per costruire un programma che trovi il voto più alto che uno studente ha guadagnato in tutti i suoi test di chimica. Per iniziare, definisci un elenco di studenti:
Il nostro elenco di studenti contiene quattro dizionari. Questi dizionari contengono i nomi di ogni studente e un elenco dei voti ottenuti. Miranda non ha ancora voti perché si è appena iscritta al corso di chimica.
L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver frequentato un bootcamp. Fatti abbinare a un bootcamp oggi.
Il laureato medio di un bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.
Successivamente, usa un ciclo for per esaminare ogni studente nel nostro elenco di studenti e trovare il voto più alto che ogni studente ha ottenuto e il voto medio di ogni studente:
Utilizziamo il max()
per trovare il voto più alto ottenuto da uno studente. Per calcolare il voto medio di uno studente, dividiamo il totale di tutti i suoi voti per il numero di voti ricevuti.
Arrotondiamo il voto medio di ogni studente al numero intero più vicino utilizzando il metodo round()
.
Esegui il nostro codice e guarda cosa succede:
Il nostro codice viene eseguito correttamente finché non raggiunge il quarto elemento della nostra lista. Possiamo vedere i voti più alti e medi di Ron, Katy e Rachel. Non possiamo vedere alcun valore per Miranda.
La soluzione
Il nostro codice funziona sui primi tre studenti perché ognuno di questi studenti ha un elenco di voti con almeno un voto. Miranda non ha ancora voti.
Poiché Miranda non ha voti, la funzione max()
non viene eseguita. max()
non riesce a trovare il valore più grande in un elenco vuoto.
Per risolvere questo errore, verifica se ogni elenco di voti contiene valori prima di provare a calcolare il voto più alto in una lista. Se un elenco non contiene valori, dovremmo mostrare un messaggio diverso all’utente.