On Fri, 18 Feb 2011 16:59:32 +0100, Gianluca Bargelli <g.barge...@gmail.com> wrote: > Ok, ho visto il mio errore di prima (l'inutile len(str(item)), ecco > una versione pulita: > > for item in ['ciao!', 1, ['mela', 'pera', 'banana'], [1, 2, 3]]: > ... try: > ... print len(item) > ... except TypeError: > ... print 0 #L'elemento non ha lunghezza > ... > > Una soluzione migliore sarebbe controllare se l'oggetto รจ iterabile, > vedi [1] e [2].
[1]: http://stackoverflow.com/questions/1952464/in-python-how-do-i-determine-if-a-variable-is-iterable [2]: http://stackoverflow.com/questions/2824612/handle-iterable-and-non-iterable-seamlessly Avere una lunghezza ed essere iterabile non sono la stessa cosa. Alcuni oggetti sono iterabili ma non hanno lunghezza (es. i generatori). Se vuoi fare senza il try/except dovresti controllare l'esistenza di __len__, non di __iter__. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python