-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El 04/09/10 23:07, Carlos Herrera Polo escribió:

> Bueno, el motivo puntual que escribo este correo se debe a lo siguiente,
> quiero hacer un pequeño programa que lea una base de datos MySQL, la
> cual retorna segun el select que ya construi los siguientes valores de
> ejemplo (solo son 2 columnas):
> 
> 1 - Arbol
> 1 -Manzana
> 1- Pera
> 2 - Arbol
> 2 - Manzana
> 3 - Manzana
> 3 - Pera
> 3 - Platano
> 3 - Uva
> 4 - Pera
> 5 - Arbol
> 5 - Pera
> 
> Esto entiendo (por lo poco que entendi), lo regresa en una "lista", he
> utilizado las librerias mas comunes para conectarme a MySQL desde
> Python, el SQL ya funciona y me retorna esos valores de ejemplo. Lo que
> quisiera hacer es convertir esto a tablas crosstab o pivot, como por
> ejemplo:
> 
> 
>                        * 1                2              3              
>   4                   5*
> Arbol                 X               X                                
>                      X
> Manzana           X                X             X                  
> Pera                 X                               X                
>  X                    X
> Platano                                             X
> Uva                                                    X


Arnau te ha puesto una solución con "iteradores". Cuesta entenderlos al
principio, pero una vez que has pillado el concepto no querrás dejar de
usarlos. Su eficiencia en recursos utilizados han conseguido que casi
todo en python se esté orientando a trabajar con estas estructuras.

La documentación que ha puesto Arnau la tienes algo más actualizada en
los howtos de python.org:

  http://docs.python.org/howto/functional.html

También hay un howto sobre ordenaciones que te será muy útil:

  http://docs.python.org/howto/sorting.html


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)

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJMhDe7AAoJEFdWyBWwhL4FswAIAKOLHHx+kk+tVlAMcShSmSnU
k5xZPew6evKADcA/deKxbEOchFU01bcE9XhQmTZ3oThW7t/ZVhF2CGexJMO/H75D
0lE/nqzHBWCCAE1PDavE2sHu7k/PZtFPg4951B8XLNqdwCAX4gEmbraDSDmr6wi3
EGmtRyXf51T0RBrleL4VOdwon5TX8bnGHHlKraTNVjSC9XhMfFdKBxInWookPFRn
N1UNhikTLGz7tKEFvcJaedin2Rk3ZYGxqZIom9X1mQmosFYcpJN4mZinW+4T+YIr
jOcVA4agX+Mo6SJEon6FJ1iHBvMCgERyoklbwvZwOXhr8FfN4NRYtf7pJsjZ1VM=
=bM9D
-----END PGP SIGNATURE-----
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a