Stavo perfezionando il mio codice (HW4), ma sono incappato in un problema che da almeno 2 ore non riesco a risolvere.
In pratica ho usato una funzione ausiliaria che prende in input due elementi: una lista (composta dalle stringhe presenti in tutti i file) e un index generico (formato int, ovviamente).
Questa funzione ausiliaria raggiunge il suo scopo senza problemi, ovvero mi ritorna il carattere di frequenza massima, come richiesto dall'esercizio.
Prendendo l'esempio di "hareennt", mi restituisce:
-) se inserisco manualmente index 0 ottengo "h"
-) con index 1 "a"
-) con index 2 "r"
-) ecc.
Poi ho implementato questa funzione in most_frequen_chars e qui sorge il problema. Ottenere la stringa desiderata non è un problema, basta concatenare i diversi caratteri ("h"+"a"+"r", ecc.).
Il problema è rendere generico l'index che la mia funzione ausiliaria prende come input:
ho provato un for index in range(len(parola_più_lunga)), ma il problema è che nella lista ci sono stringhe dalla lunghezza diversa.
Quindi se ho due parole, come "angel" e "portrait", mi ritorna index error (giustamente), dato che procede l'iterazione fino a quando non nota che l'index 5 di "portrait" non esiste in angel, che al massimo arriva a index 4.
Come si potrebbe deviare questo problema? In soldoni, come faccio ad evitare "string index out of range", mantenendo intatta la mia funzione ausiliaria?