On 26/09/12 17:45, Marco De Paoli wrote:
Il giorno 26 settembre 2012 17:37, Stefano Dal Pra <s.dal...@gmail.com <mailto:s.dal...@gmail.com>> 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 Python@lists.python.it http://lists.python.it/mailman/listinfo/python