<div class="gmail_quote">2010/1/22 simone gabbriellini <span dir="ltr">&lt;<a href="mailto:simone.gabbriellini@gmail.com">simone.gabbriellini@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Salve,<br>

una curiosità da neofita.<br>

esiste un modo per scrivere in modo più conciso e performante il seguente codice?<br>
<br>
a = sum([True for element in lista if sum(element.attribute)==0])<br>
b = sum([True for element in lista if sum(element.attribute)==1])<br>
c = sum([True for element in lista if sum(element.attribute)==2])<br>
d = sum([True for element in lista if sum(element.attribute)==3])<br>
e = sum([True for element in lista if sum(element.attribute)==4])<br>
<br>
in questo caso avevo pensato a:<br>
<br>
a=[]<br>
b=[]<br>
c=[]<br>
d=[]<br>
e=[]<br>
for element in lista:<br>
        if sum(element.attribute) ==0:<br>
                a.append(....)<br>
        elif ....<br>
        .....<br>
<br>
in questo modo si riduce il numero di volte che scorro &quot;lista&quot;, giusto?<br>
ma è effettivamente il modo corretto di affrontare una struttura logica come questa?<br></blockquote><div><br>Mi piace di piu` cosi`:<br><br>&gt;&gt;&gt; d = dict((i, sum([1 for e in lista if sum(e.attribute) == i])) for i in range(5))<br>

<br>In d hai un dizionario ma se vuoi a tutti i costi i risultati in a, b, c, d, e dopo puoi:<br><br>&gt;&gt;&gt; a, b, c, d, e = [d.get(i, 0) for i in range(5)]<br><br>Ciao.<br>Marco.<br clear="all"></div></div><br>-- <br>

<a href="http://python.thinkcode.tv">http://python.thinkcode.tv</a> - Videocorso di Python<br><a href="http://stacktrace.it">http://stacktrace.it</a> - Aperiodico di resistenza informatica<br><a href="http://beri.it">http://beri.it</a> - Blog di una testina di vitello<br>

<br>