On 26/09/12 17:45, Marco De Paoli wrote:
Il giorno 26 settembre 2012 17:37, Stefano Dal Pra 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],[])
Il giorno 26 settembre 2012 17:37, Stefano Dal Pra 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
>
2012/9/21 Marco De Paoli :
> 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]}
Un altro modo puo' essere:
>>> base = [(1, 100), (1, 200), (3, 100)]
>>> ca
Il giorno 24 settembre 2012 21:54, enrico franchi
ha scritto:
> {k: map(op.itemgetter(1), v) for (k, v) in it.groupby(base,
> op.itemgetter(0))}
>
> Poi non sono completamente convinto che sparare una dict comprehension
> cosi' complicata e "funzionale" sia un'ottima idea in codice da
> mantenere
2012/9/21 Marco De Paoli :
> 2) ... c'è qualcosa di più pythonico?
{k: map(op.itemgetter(1), v) for (k, v) in it.groupby(base, op.itemgetter(0))}
Non particolarmente testato... in particolare direi che si basa anche
sul fatto che la sopra
la lista sia raggruppata per chiave.
Ovviamente li manc
Marco De Paoli wrote:
> Il giorno 21 settembre 2012 15:33, Marco Beri ha
> scritto:
>
>> A me piace di più così:
>>
>> result = dict((c, []) for c in categories)
>> for k, v in base:
>> result[k].append(v)
>>
>> La list comprehension usata per risparmiare il for non mi gusta
>> troppo...
>>
Il giorno 21 settembre 2012 15:33, Marco Beri ha
scritto:
> A me piace di più così:
>
> result = dict((c, []) for c in categories)
> for k, v in base:
> result[k].append(v)
>
> La list comprehension usata per risparmiare il for non mi gusta troppo...
>
yess, molto più leggibile
...in effetti
2012/9/21 Marco De Paoli
> 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
>
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 seg