Pagina 1 di 1
[Python] Una mano con un esercizio?
Inviato: sab nov 08, 2014 10:57 am
da zingiest
Ciao a tutti ,
sto leggendo un manuale di python, sono alle primissime armi e sto cercando di risolvere questo esercizio:
['ciao!', 1, ['mela', 'pera', 'banana'], [1, 2, 3]]
Esercizio: scrivi un ciclo che attraversa la lista precedente e stampa la lunghezza di ogni elemento.
Io ho scritto questo: Codice: Seleziona tutto
lista=['ciao!', 1, ['mela', 'pera', 'banana'], [1, 2, 3]]
i=0
while i<len(lista):
print len(lista[i])
i=i+1
Eseguendolo però ottengo un errore in cui mi dice che un intero non ha una lunghezza . Cosa posso fare?
Grazie e buon weekend a tutti
Re: [Python] Una mano con un esercizio?
Inviato: sab nov 08, 2014 1:59 pm
da hashcat
Premessa: non ho ben capito se devi calcolare anche la lunghezza degli elementi della lista dentro la lista ('mela', 'pera', 'banana').
L'errore segnalato si verifica perché l'elemento 1 (ad esempio) è di tipo intero e l'operazione len non è definita su questo tipo (ma è definita su '1' o "1" che vengono entrambi interpretati come stringa). Senza tenere conto del dubbio riportato nella premessa di questo messaggio potresti fare una cosa di questo genere:
Codice: Seleziona tutto
lista=['ciao!', 1, ['mela', 'pera', 'banana'], [1, 2, 3]]
for n in lista:
print len(str(n))
P.S.: Attraverso str(n) impongo che ogni elemento della lista principale su cui itera il for sia interpretato (o convertito) come tipo stringa sul quale è definita l'operazione len.
P.S.2: Tieni presente che senza opportune precisazioni l'operazione len di una lista riporta il numero di elementi contenuti in essa.
Re: [Python] Una mano con un esercizio?
Inviato: dom nov 09, 2014 5:58 pm
da zingiest
Non è proprio chiaro in effetti. Grazie, risolto