On 26/09/12 17:45, Marco De Paoli wrote:
Il giorno 26 settembre 2012 17:37, Stefano Dal Pra <[email protected]
<mailto:[email protected]>> ha scritto:
Un altro modo puo' essere:
>>> base = [(1, 100), (1, 200), (3, 100)]
>>> categories = [1, 2, 3]
>>> d = {}
>>> x = [d.setdefault(x[0],[]).append(x[1]) for x in base] + [
d.setdefault(n,[]) for n in categories ]
>>> d
{1: [100, 200], 2: [], 3: [100]}
sì, direi che è parente stretto del mio iniziale
nella seconda lista mi hai giustamente fatto notare che
if not k in result
non è necessaria
rimangono i dubbi iniziali che ha detto Marco B
(qui addirittura c'è una somma che non è una somma e un assegnazione che
non è un assegnazione)
Lo so che per alcuni è un quasi un taboo, ma mi chiedo...per qualche
riga in più non è però più leggibile il doppio for?
result = {}
for i in categories:
result[i] = []
for k,v in base:
if k == i:
result[k].append(v)
Lorenzo
_______________________________________________
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python