[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