ciao a tutti, ho le seguenti liste: base = [(1, 100), (1, 200), (3, 100)] categories = [1, 2, 3]
e vorrei ottenere il seguente dizionario: result = {1: [100, 200], 2: [], 3: [100]} In pratica ogni chiave in categories è presente in result eventualmente con valore lista vuota. Ho pensato alla seguente soluzione: result = {} [result.setdefault(k, []).append(v) for k, v in base] [result.setdefault(k, []) for k in categories if not k in result] C'è però la terza riga che non mi piace perché leggo result *mentre* lo sto modificando, per cui l'ho sostituita con: [result.setdefault(k, []) for k in categories if not k in dict(base).keys()] Domande: 1) ha senso lo scrupolo di non leggere result mentre lo modifico? 2) ... c'è qualcosa di più pythonico? grazie, Marco
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python