[pyar] Lista agrupada
Daniel
dmlistapython en gmail.com
Vie Sep 23 17:40:27 ART 2011
El día 23 de septiembre de 2011 17:36, Claudio Freire
<klaussfreire en gmail.com> escribió:
> 2011/9/23 Daniel <dmlistapython en gmail.com>:
>> y necesitaría recorrerla agrupada, algo así
>>
>> [gomez]
>> [auto, DSL598],
>> [moto, 393DSR]
>> [alvarez]
>> [auto, DAL399]
>> [perez]
>> [auto, SFT320]
>
>
> Yo tengo en mi arsenal de funciones super útiles:
>
> def multimap(l,constructor=list,appendor=list.append):
> NONE = _NONE
> rv = {}
> rvget = rv.get
> pk = rvk = NONE
> for k,v in l:
> if k is not pk:
> rvk = rvget(k,NONE)
> pk = k
> if rvk is NONE:
> rv[k] = rvk = constructor()
> appendor(rvk,v)
> return rv
>
> Usando el ejemplo de Mauro:
>
>>>> a=[ ['juanca', 4, 'tecnico'],
> ... ['jose', 1, 'jugador'],
> ... ['oscar', 2, 'jugador'],
> ... ['rober', 3, 'hincha'], ]
>>>> import operator
>>>> multimap(map(operator.itemgetter(-1,slice(0,-1)), a))
> {'hincha': [['rober', 3]], 'jugador': [['jose', 1], ['oscar', 2]],
> 'tecnico': [['juanca', 4]]}
>>>>
> _______________________________________________
Claro, ambos me pasaron para hacer dics, pero necesito
recorrerlo con un for ¿con un dict puedo hacerlo?, ¿podré adaptar alguno?
--
Daniel Malisani
More information about the pyar
mailing list