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

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Risultati "esatti" ma in ordine diverso dal grade

M
M.G (420 points)
5 7 12
in Es1 by (420 points)
closed by
Buonasera,

nell'eseguire gli esercizi, quando faccio partire il grade, sul 1°es. e il 2°es., il mio codice stampa i valori corretti, ma ritrovo AssertionError su entrambi, in quanto i miei risultanti non sono nello stesso ordine dei test dei grade. Cosa potrei fare per risolvere questa cosa?
299 views
closed with the note: deadline expired

2 Answers

Jury Francia (7520 points)
25 76 100
by (7.5k points)
se è una lista puoi usare [::-1] che ti rigira la lista dall'ultimo valore al primo. se la lista contiene 1,2,3 se richiami la lista e [::-1] il risultato sarà 3,2,1
Auron (15880 points)
51 126 194
by (15.9k points)

Se l'ordine che hai è diverso per quanto riguarda gli elementi del dizionario, allora non è quello il problema, in quanto un dizionario per definizione è DISORDINATO e il grader tiene conto di questa cosa restituendoti "ok" anche in caso di diversa sequenza dei valori... A me è così, e funziona tutto, come è ovvio che sia...
Se invece il problema è nelle liste, come diceva Jury, allora potresti invertire l'ordine dei valori sia come ti ha suggerito lui, ma anche con il metodo lista.reverse() che nasce apposta per esigenze del genere e funziona una meraviglia...

Esempio:

Se tu hai {'1':['1','2','3'],'2':['4','5','6']} e l'ordine nel grader è {'2':['4','5','6'],'1':['1','2','3']}, allora il risultato va bene lo stesso perchè i due insieme sono UGUALI.

Se, invece, tu hai {'1':['1','2','3'],'2':['4','5','6']} e l'ordine nel grader è {'1':['3','2','1'],'2':['6','5','4']}, allora è l'altro caso, in cui ti consiglierei di usare il metodo reverse().

Se, ancora, l'ordine degli elementi della lista è diverso dall'inverso di quello corretto, oppure alle chiavi del dizionario non sono correlati i corretti valori, allora hai un problema più grave che nasce dall'algoritmo che hai implementato... Quindi ti consiglierei di riguardare bene i singoli passaggi :D

Se ti sono stato d'aiuto e sei soddisfatto della mia risposta, come spero, per favore contrassegnala come migliore :)