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

Do you need help?

Incomprensione di una funzione

a
alex_andrei13 (3800 points)
14 41 53
in Eserciziario d'esame by (3.8k points)

Buongiorno!

Stavo svolgendo un esercizio e mi sono imbattuto in questa funzione:

sorted(list(filter(lambda x: diz[x] == maxColor, diz)))

e non capisco come funziona esattamente. Premetto che diz è un dizionario e maxColor è il colore che si ripete maggiormente nel dizionario.

Questo è il testo dell'esercizio:

- restituisce la tupla con il colore che compare piu' spesso nell'immagine letta e in 
        caso di parita' di occorrenze massime il colore del pixel che viene prima lessicograficamente.

Ringrazio in anticipo!

278 views
closed

1 Answer

Best answer
a
alex_mariani (2040 points)
1 2 12
by (2.0k points)
selected by
CIao,partiamo dal filter la funzione passata con il lambda prende un iterable il dizionario diz e una arrow function,la funzione in questione riceve ogni chiave del dizionario e compara il valore diz[x] con il colore che appare più spesso maxColor i colori che soddisfano la condizione sono quelli che rimarranno,il filter restituisce un filter iterable che tramite list viene trasformato in una lista da cui viene fatto il sorted che ordina il contenuto della lista lessicograficamente dal più piccolo al più grande
a
alex_andrei13 (3800 points)
14 41 53
by (3.8k points)
Quindi con MaxColor prendo il valore più grande e lo comparo a tutti gli altri. In modo iterativo mi salvo i colori, trasformo tutto in una lista e infine con sorted ordino il tutto?
a
alex_mariani (2040 points)
1 2 12
by (2.0k points)
Si il concetto è quello