Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

chiedo aiuto per hw2

s
simone.lioy (1420 points)
28 30 39
in HW2 obbligatorio by (1.4k points)
recategorized by
Buonasera ragazzi chiedo aiuto per l'homework 2. l'esercizio mi esce il problema è il test come mi trova questo errore:

"too many value pack". perchè prendo la lista1 e la trasformo in un dizionario(per la chiave e il valore in lista1 mi costruisco il dizionario), nell'esercizio nessun problema, nessun errore. Invece nel test_01 mi trova questo errore
470 views

1 Answer

E
Edward (25950 points)
3 4 172
by (26.0k points)

L'errore too many values to unpack avviene quando cerchi di fare l'unpack di una tupla o di una lista, ma le variabili a cui vuoi assegnare l'unpack sono troppo poche.

Ad esempio:
tupla = (1,2,3)
a, b = tupla

questo genera quell'errore.

nell'esercizio nessun problema, nessun errore

in genere se test_01 non va, vuol dire che c'è qualche problema...

Fai attenzione alla variabile che restituisci, deve essere solamente una lista.

s
simone.lioy (1420 points)
28 30 39
by (1.4k points)
cerco di trasformare la lista1=['e2','s4','s3','s3','e1','s5'] in dizionario
E
Edward (25950 points)
3 4 172
by (26.0k points)
Ok però evidentemente c'è un errore di sintassi, prova a vedere a che linea ti da l'errore, e correggerlo.
s
simone.lioy (1420 points)
28 30 39
by (1.4k points)
l'errore me lo da al (for chiave, valore in lista1) il ciclo che trasforma la lista in dizionario
E
Edward (25950 points)
3 4 172
by (26.0k points)
Scrivendo in quel modo stai dicendo a python di mettere tutti i valori che si trovano in lista1, dentro chiave e valore. Essendo i valori in lista1 maggiori di 2, ti da l'errore too many values to unpack.
s
simone.lioy (1420 points)
28 30 39
by (1.4k points)
come posso risolvere c'è qualche metodo?
E
Edward (25950 points)
3 4 172
by (26.0k points)
Dovresti cambiare la sintassi, non è corretto quello che scrivi lì per convertire la lista in un dizionario.

Inoltre se stai cercando di trasformare la lista degli eventi (sorpassi e ritiri) in dizionario, te lo sconsiglio. Secondo me non è l'approccio giusto.
s
simone.lioy (1420 points)
28 30 39
by (1.4k points)
dovrei fare una lista?
Christian (15220 points)
3 4 77
by (15.2k points)
Dovresti semplicemente scorrere la lista che ricevi in input, o almeno io ho fatto così.
Almeno si evitano elaborazioni superflue... (vedi quanto è lunga quella lista per l'esempio 5)
E
Edward (25950 points)
3 4 172
by (26.0k points)
Concordo con quanto detto da @Christian
s
simone.lioy (1420 points)
28 30 39
by (1.4k points)
quasi fatto il nuovo codice, manca solo l'ordinamento