Esame 29-1-20: Esercizio 3

e
eugedp (280 points)
0 2 5
asked May 18, 2020 in Eserciziario Python by eugedp (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
169 views

1 Answer

EffeGi (1530 points)
0 1 5
answered May 18, 2020 by EffeGi (1,530 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
commented May 19, 2020 by eugedp (280 points)
Ciao e grazie per il suggerimento.

Provo ad implementare la tua soluzione.