[pyar] Lista agrupada
Claudio Freire
klaussfreire en gmail.com
Vie Sep 23 17:36:18 ART 2011
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]]}
>>>
More information about the pyar
mailing list