[Python] da lista di coppie a dict con lista di valori

Riccardo Lemmi riccardo a reflab.com
Sab 22 Set 2012 18:37:11 CEST


Marco De Paoli wrote:

> Il giorno 21 settembre 2012 15:33, Marco Beri <marcoberi a gmail.com> 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 usare i side-effect di una list comprehension non
> garbava molto neppure a me
> 
> grazie,
> Marco

Occhio che se 'base' contiene tuple il cui primo elemento non č in 
'categories' ottieni un "KeyError". Una diversa soluzione potrebbe 
essere:

result = {}
for k,e in base:
    if k in categories:
        result.setdefault(k, [])
        result[k].append(e)


-- 
                                       Riccardo Lemmi



Maggiori informazioni sulla lista Python