[Python] da lista di coppie a dict con lista di valori
Marco De Paoli
depaolim a gmail.com
Ven 21 Set 2012 15:27:09 CEST
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
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120921/4eb21042/attachment.html>
Maggiori informazioni sulla lista
Python