Salve a tutti, per svolgere il seguente esercizio :
l2d(lst) presa in input una lista lst i cui elementi sono numeri da 0 a 9 espressi in lettere ('zero','uno', …,'nove'), ritorna una nuova lista i cui elementi sono la traduzione in numeri degli
elementi di lst. Esempio
l2d(['nove','due','due','tre']) ritorna [9,2,2,3]
Ho scritto la seguente funzione:
def l2d(lst):
...: new = []
...: for x in lst:
...: if x == 'zero':
...: new.append(0)
...: elif x == 'uno':
...: new.append(1)
...: elif x == 'due':
...: new.append(2)
...: elif x == 'tre':
...: new.append(3)
...: elif x == 'quattro':
...: new.append(4)
...: elif x == 'cinque':
...: new.append(5)
...: elif x == 'sei':
...: new.append(6)
...: elif x == 'sette':
...: new.append(7)
...: elif x == 'otto':
...: new.append(8)
...: elif x == 'nove':
...: new.append(9)
...: return new
...:
...:
La funzione svolge il suo compito come previsto, ma come potete vedere il codice è molto lungo. Secondo voi la funzione è scritta correttamente in base alle richieste dell'esercizio o dovrei in qualche modo ridurre il codice? Se no, come potrei ridurre il codice evitando di importare moduli esterni che convertono automaticamente letters to digits?
Edit: come faccio a postare codice sul forum in modo leggibile?
l2d(lst) presa in input una lista lst i cui elementi sono numeri da 0 a 9 espressi in lettere ('zero','uno', …,'nove'), ritorna una nuova lista i cui elementi sono la traduzione in numeri degli
elementi di lst. Esempio
l2d(['nove','due','due','tre']) ritorna [9,2,2,3]
Ho scritto la seguente funzione:
def l2d(lst):
...: new = []
...: for x in lst:
...: if x == 'zero':
...: new.append(0)
...: elif x == 'uno':
...: new.append(1)
...: elif x == 'due':
...: new.append(2)
...: elif x == 'tre':
...: new.append(3)
...: elif x == 'quattro':
...: new.append(4)
...: elif x == 'cinque':
...: new.append(5)
...: elif x == 'sei':
...: new.append(6)
...: elif x == 'sette':
...: new.append(7)
...: elif x == 'otto':
...: new.append(8)
...: elif x == 'nove':
...: new.append(9)
...: return new
...:
...:
La funzione svolge il suo compito come previsto, ma come potete vedere il codice è molto lungo. Secondo voi la funzione è scritta correttamente in base alle richieste dell'esercizio o dovrei in qualche modo ridurre il codice? Se no, come potrei ridurre il codice evitando di importare moduli esterni che convertono automaticamente letters to digits?
Edit: come faccio a postare codice sul forum in modo leggibile?