[Python] liste in Python errore costruzione matrice

Federico Figus figus.federico a gmail.com
Mar 4 Giu 2013 14:44:01 CEST


>
> Quando eseguo    for i in range(0, len(self.ArrChartData) - 1):
>
> se len(self.ArrChartData) è 0  voglio che il ciclo for non venga
> eseguito.
> se len(self.ArrChartData) è 1  voglio che il ciclo for non venga eseguito
> una sola volta con k=0
>

 se len(self.ArrChartData) è 3 voglio che il ciclo for  venga eseguito tre
> volte con k=0, 1, 2


Nel tuo caso avrai:
se len(self.ArrCharData) == 0 allora avrai range(0, -1) cioè []
se len(self.ArrCharData) == 1 allora avrai range(0, 0) cioè []
se len(self.ArrCharData) == 2 allora avrai range(0, 1) cioè [0]
se len(self.ArrCharData) == 3 allora avrai range(0, 2) cioè [0, 1]

se vuoi evitare che il ciclo venga eseguito per len(self.ArrCharData) uguale
a 0 o a 1, allora ti consiglio di mettere prima del ciclo queste due righe
di codice:

if len(self.ArrCharData) < 2:
continue

Altro piccolo consiglio, quando ti serve un contatore usa xrange() al posto
di range(), il primo rende un generator il secondo una list. In più non hai
bisogno di specificare 0 visto che parte sempre da zero se non specifichi
due argomenti, quindi:
range(n) -> [0, 1, ...., n-1]
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130604/d08290a5/attachment.html>


Maggiori informazioni sulla lista Python