[Python-es] Tablas "pivot"
Arnau Sanchez
pyarnau en gmail.com
Lun Sep 6 11:01:18 CEST 2010
On Mon, 06 Sep 2010 02:37:20 +0200 Chema Cortes wrote:
> De todos modos, si prefieres algo menos intimidante, aquí te pongo una
> solución empleando diccionarios:
>
> pivot={}
> for num,nombre in resultados:
> pivot.setdefault(nombre,[]).append(num)
Intento escribirlo mi código de otra forma, sin tanto itemgetter como antes:
pivot = dict((nombre, [row[0] for row in rows]) for (nombre, rows) in
itertools.groupby(resultados_ordenados_por_nombre, lambda row: row[1]))
Vale, lo reconozco, por mucho que me esfuerce una solución funcional no quedará
tan "clara" como usando un diccionario como estado :-p
Supongo que padezco la fe del converso, cuando profundizas en lenguajes como
Haskell o Erlang parece no haber vuelta atrás.
> http://docs.python.org/howto/sorting.html
Éste no lo conocía. Está muy bien.
Más información sobre la lista de distribución Python-es