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

Do you need help?

Coordinate pixel per ogni rettangolo

M
Mic_s (670 points)
4 18 25
in HW6 obbligatorio by (670 points)
Per trovare i parametri x,y,w e h di ogni rettangolo ho pensato di creare un dizionario in cui uso come key ogni colore e all'interno vi sono delle tuple con tutti i valori x e y di ogni pixel che costituisce un rettangolo. Ho trovato tutti i punti x,y scorrendo l'immagine ed ignorando i pixel neri. il mio problema si trova nel creare il dizionario, non so come creare la tupla contenente altre tuple con i vari x, y per ogni colore. Qualche consiglio?

Grazie in anticipo spero si sia capito il problema, mi scuso se la spiegazione è pessima.
307 views
closed

1 Answer

Best answer
twgever (17470 points)
8 29 105
by (17.5k points)
selected by
Se vuoi semplicemente aggiungere un valore al dizionario, fai caso una x, ti basta fare

dizionario[colore]=[x]
così assegni il valore al colore, e assegni una lista, mentre per quelli successivi puoi fare

dizionario[colore].append(y)

così a dizionario[colore] sarà associata la lista [x,y]

se proprio vuoi usare le tuple, puoi fare la stessa identica cosa, e poi convertire la lista in tupla quando hai fatto (le tuple sono immutabili)
M
Mic_s (670 points)
4 18 25
by (670 points)
si, il problema era creare la tupla non so come mettere al suo interno tutti i pixel di un rettangolo
twgever (17470 points)
8 29 105
by (17.5k points)
stessa cosa, inizializzi il dizionario

diz={}

#scorri i colori
for colore in colori
#fai quello che devi fare per scorrerti i pixel che ti servono, e quando trovi un pixel che ti serve fai

diz[colore]=[pixel]    #questo per le prime occorrenze

diz[colore].append(pixel)   #questo per tutte le altre occorrenze

alternativamente, puoi usare solo il secondo comando, se inizializzi con diz[colore]=[]

fatto questo, ti trasformi la lista in una tupla.
P
Pasqualino96 (1490 points)
4 23 27
by (1.5k points)
Se tu sei in un ciclo for che scansiona una lista di tuple, l'elemento in analisi sarà sempre una tupla. Questo significa che nel momento in cui al valore di una chiave di un dizionario aggiungi l'elemento del ciclo for, in realtà stai inserendo la tupla. Quindi il problema non esiste.

Stessa cosa vale al contrario
M
Mic_s (670 points)
4 18 25
by (670 points)
Grazie, ho risolto
andrea.sterbini (207940 points)
754 1269 2377
by (208k points)
Tanto vale che gli passi il programma ... (e poi non vi lamentate se sono costretto ad annullarlo)
twgever (17470 points)
8 29 105
by (17.5k points)
mi scusi prof. Solo che mi sembrava che ci fosse bisogno almeno di spiegare i comandi da usare per manipolare un dizionario, visto che la carenza mi sembrava proprio lì. Infatti ho limitato giusto a 3 istruzione, ignorando tutto il reso dell'implementazione. Ci farò più attenzione.