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

Do you need help?

Conteggio prosodia hw4

M
Mic_s (670 points)
4 18 25
in HW4 obbligatorio by (670 points)
Ho quasi finito il mio codice ma non riesco a trovare un modo per trovare la prosodia. Non so come associare l'es finale, con il numero totale di es e con il numero prosodico in modo efficiente, e non so in che altro modo poter confrontare i vari parametri di ogni verso. Avevo pensato in principio di assegnare a ogni verso la prosodia in base al proprio index, di creare un ciclo che andasse a verificare con un if a due condizioni se l'es finale e il numero di es fossero uguali in due versi per poi sostituire a quelli uguali l'index (la prosodia) giusta. Non so se però possa impiegare troppo tempo e se ci sia un modo per farlo.

Grazie in anticipo per le risposte.
583 views

4 Answers

K
KillianVoid (570 points)
1 6 8
by (570 points)
La questione si fa semplice se si usa un dizionario.

All'interno di un ciclo che passi tutti gli 'es finale' definisci una variabile che parta da 0: il primo 'es finale' lo registri nel dizionario sotto forma di 0, lo aggiungi nella tua lista 'prosodia' e incrementi la variabile di 1.

Poi, ogni volta che passi un 'es finale' controlli che sia contenuto o meno nel dizionario:

- se è contenuto, tramite il dizionario, gli verrà assegnato il numero già registrato per quel 'es finale';

- se non è contenuto allora assumerà il valore della variabile che hai incrementato nel primo passaggio e verrà registrato nel dizionario, una volta fatto ciò la variabile viene incrementata di nuovo per futuri 'es finale' non presenti nel dizionario.

Così è come sono riuscito a farlo. Poi sta a te ottimizzarlo nel tuo programma.
M
Mic_s (670 points)
4 18 25
by (670 points)
Grazie, sto provando a fare in questo modo il problema più grande è riuscire a controllare che il numero totale di es sia lo stesso per i due es finali uguali
Loriv3 (7970 points)
13 21 84
by (8.0k points)
Molto utile ciò che ti ha consigliato il ragazzo precedente ma stai attento perché la prosodia ha anche l'impiccio che per essere la stessa prosodia il verso deve avere lo stesso numero di elementi sonori, anche io sono ingarbugliato in questo punto
M
Mic_s (670 points)
4 18 25
by (670 points)
esattamente, quello è il problema più grande
a
alessandro.bellia (930 points)
0 2 12
by (930 points)
Io aggiungerei al suggerimento di KillianVoid di utilizzare zip() per le liste delle finali e quella della lunghezza e controllare che la tupla non sia una chiave del dizionario. Se non lo è, incrementa di uno la variabile, dopo aver verificato se vero o falso, procedi con l'aggiungere il valore della variabile al valore associato alla key del dizionario.
Mi spiace se è un po' confuso ma non so scrivere decentemente lo pseudocode ahah

Nel caso tu ci riuscissi, buona fortuna per il modulo, io non ho idea di come si trovi :(
M
Mic_s (670 points)
4 18 25
by (670 points)
Grazie mille, proverò a farlo. Ma non ho capito come utilizzare la lunghezza di ogni es nelle tuple
a
alessandro.bellia (930 points)
0 2 12
by (930 points)
Se hai una lista ti basta iterarci dentro mentre iteri anche la lista delle finali
giordano_sannino (13650 points)
7 16 81
by (13.7k points)
io ho usato degli if e lavorato sugli indici!