Pagina 1 di 1

[Python] Una mano con un esercizio?

Inviato: sab nov 08, 2014 10:57 am
da zingiest
Ciao a tutti :ciao ,
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 :muro . Cosa posso fare?
Grazie e buon weekend a tutti :ciao

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 :grazie :clap