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

Do you need help?

Esame 29-1-20: Esercizio 3

e
eugedp (280 points)
0 2 5
in Eserciziario Python by (280 points)
Salve a tutti,

sto incontrando difficoltà nel risolvere questo esercizio. L'esercizio chiede, partendo da un file .PNG, di creare un funzione che restituisce una lista di tuple.Le tuple della lista sono le terne RGB dei colori presenti nella foto. Le tuple della lista devono essere ordinate in base al numero di occorrenze decrescente(vale a dire che i colori che compaiono di piu' devono venire prima).
A parita' di occorrenze l'ordine e' quello indotto, nell'ordine, dalla componente R, poi dalla G poi dalla B del colore.

Partendo dalla lista di tuple che definisce l'immagine', ho creato un dizionario le cui chiavi sono le tuple (le terne RGB) ed i valori sono il numero di occorrenze con cui ogni tupla appare nella lista. Usando una funzione lambda ho ordinato il dizionario in base al numero di occorrenze decrescente.A questo punto trovo difficoltà a gestire la seguente condizione:
"A parita' di occorrenze l'ordine e' quello indotto, nell'ordine, dalla componente R, poi dalla G poi dalla B del colore."

Qualcuno sa darmi un suggerimento su come risolvere?
Grazie
278 views

1 Answer

EffeGi (1530 points)
0 1 5
by (1.5k points)
Ciao!

protresti raffinare la funzione lambda, come hai notato, le occorrenze non bastano ad ordinare le tuple...

Magari puoi coinvolgere i valori delle tuple nella funzione lambda, ossia avere più variabili di riferimento (che formano una n-pla).

Quindi la funzione lambda è rispetto ad (occorrenze, R, G, B).
e
eugedp (280 points)
0 2 5
by (280 points)
Ciao e grazie per il suggerimento.

Provo ad implementare la tua soluzione.