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

Do you need help?

Notice Board

Punto di partenza in un dizionario (?)

V
Valerio.Pescatori (1940 points)
11 25 38
in Es1 by (1.9k points)
closed by

Salve, sono bloccato nel primo esercizio, non riesco a stabilire un punto di partenza per la terza funzione.

Ho pensato di iterare sulle chiavi del dizionario, ma così facendo non posso richiamare la stessa funzione perché ogni volta il ciclo inizierebbe da capo.
L'idea che mi è venuta quindi è quella di iterare sugli attributi (cioè le liste) di ogni chiave, così da poter scorrere il dizionario-albero, il problema però è: da dove parto? 
Se non ho nessuna chiave, come posso ricavarmela? 
Cercando su internet ho trovato due tipi di soluzioni: 
Da una parte c'è chi dice che i dizionari non hanno un ordine e che quindi non c'è una 'prima' chiave
Dall'altra c'è chi fornisce una funzione che restituisce la prossima iterazione.

A chi bisogna dar retta? Grazie.
 

1.0k views
closed with the note: answered

3 Answers

Best answer
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
selected by
Vi rispondo con una domanda.

Quale cosa non ha la radice che tutti gli altri nodi hanno?
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
(e no, non è sempre la prima chiave del dizionario)
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
vi arrendete?
j
j.criacci (400 points)
3 6 11
by (400 points)
la radice non e' contenuta in qualita' di value in nessuna key
by (9.9k points)
La radice non è figlia di nessuno. Però in tutti i file che lei ci ha fornito compare anche come prima chiave nel dizionario. È una cosa voluta?
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
Esatto non ha padri.
No, che sia la prima chiave è un caso ... non ci fate conto per i prossimi test (anzi, fate conto che NON sarà la prima (devil) Muah ah ah !!!! ).
by (9.9k points)
In tal caso toccherà trovare la radice nel dizionario in altro modo allora, incrementando i tempi (perché bisognerà scorrerlo).
Auron (15880 points)
51 126 194
by (15.9k points)
Io personalmente ho inserito un ciclo for i in albero (con albero che contiene l'intero dizionario), assegnando ad una variabile il valore di "i" e inserendo un "break" subito dopo... In questo modo il For compie una sola iterazione e nella variabile troviamo il valore della prima chiave iterata... Non so se ci siano modi più eleganti per fare questo, magari qualcuno risponderà in modo migliore... Ma io ho trovato questo escamotage e funziona tutto benissimo :)

Se ti sono stato di aiuto e ho risolto il tuo problema, mi farebbe molto piacere se mi contrassegnassi come miglior risposta :)

Un abbraccio e buon Code! :D
V
Valerio.Pescatori (1940 points)
11 25 38
by (1.9k points)
È esattamente l'idea che mi era venuta inizialmente ahaha solo che ho pensato che fosse metodo abbastanza barbaro e non ero sicuro che funzionasse, se non trovo un'altra soluzione credo che farò così hhahaha
(y) (y)
by (9.9k points)
Prima di decodificare il file JSON guarda bene gli elementi che ci sono all'interno, vedrai che c'è una particolarità che è comune per tutti i file, e che puoi usare per ricavarti la radice dell'albero. Inoltre leggere bene il testo dell'esercizio ti aiuterà a capire questa ricorrenza.

Di più non posso dirti, ma spero di averti dato la spinta giusta!
V
Valerio.Pescatori (1940 points)
11 25 38
by (1.9k points)
Quindi non stai parlando del fatto che la radice dell'albero è sempre la prima chiave del dizionario?
C'è un'altra ricorrenza o si parla di questo?
by (9.9k points)
Solo questa, almeno per adesso
V
Valerio.Pescatori (1940 points)
11 25 38
by (1.9k points)
Ok, grazie mille :) :) (y)