[Python-es] Tablas "pivot"

Carlos Herrera Polo carlos.herrerapolo en gmail.com
Lun Sep 6 19:06:22 CEST 2010


Gracias a ambos por sus ideas, voy a tratar de hacerlo con
diccionarios como el ejemplo de Chema, Arnau, gracias por tus
sugerencias de iteradores, no tenia idea de que existiera esas
funciones.... Vale la pena leer los enlaces para comprender mejor
python.

Los diccionarios me parecen fenomenales, me tomo un poco de tiempo
entender el ejemplo de chema pero ya lo entendi....
Ahora, el diccionario retorna una serie de elementos, cada uno con 2
valores (una cadena y una lista).... Es posible utilizar el
diccionario como una lista y "barrer" secuencialmente el contenido de
sus elementos para un proceso adicional ?
Por ahi lei una funcion items() que me parece hace algo de esto...
Existe otra forma de hacerlo ?
Lo que ocurre es que el diccionario me retorna algo como :

('A':[1,1,2],'B':[1,1,1,2,2],'C':[2,2])

Quisiera por ejemplo listarlo secuencialmente como si fuera una lista,
en un bucle, pero veo que no hay manera con diccionarios, salvo me
equivoque...

Gracias a todos por dedicar algo de su tiempo en apoyarme.

Saludos

El 06/09/10, Arnau Sanchez <pyarnau en gmail.com> escribió:
> 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.
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>

-- 
Enviado desde mi dispositivo móvil


Más información sobre la lista de distribución Python-es