[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