On Sat, 4 Sep 2010 16:07:55 -0500 Carlos Herrera Polo wrote: > algo que "en mis tiempos" de programador era imposible... y sera porque > tengo ya nociones arraigadas en otros lenguajes no entiendo mucho ciertos > conceptos de Python...
Bueno, todo depende de qué lenguajes provengas. Por nombrar uno fundamental: (en lo fundamental) no hay código en Python que no tenga equivalente en Lisp... y éste se creó en 1958! > quisiera utilizarlo, y quisiera consultarles, antes de hacer el "clasico" > programa lleno de blucles y matrices (no se como usar matrices en Python... Que la vista tenga pinta de matriz no significa que la estructura de datos también deba serlo. En este caso parece que una lista de tuplas (fila, columnas) es más conveniente. Dicho al estilo Haskell: [(cosa, [numero])] > "listas" o "tuplas", he visto que hacen muchas cosas con listas, que no > comprendo , pero reducen muchas lineas de codigo... ¿Te refieres a cosas como comprensiones de listas/generatores, usar funciones como parámetros, el módulo itertools, etc? si es eso, lo que buscas son conceptos de programación funcional. Hace poco pegué unos enlaces en la lista, los repito: http://en.wikipedia.org/wiki/Functional_programming http://www.amk.ca/python/writing/functional En este caso, y sin meternos en formatear la tabla (que es engorroso), algo así podría servir (asumo columnas "name" y "num" en una tabla "things"): import itertools, operator connection = ... sql = "SELECT name, num FROM things ORDER BY name;" groups = itertools.groupby(connection.execute(sql), operator.itemgetter(0)) table = ((name, map(operator.itemgetter(1), grp)) for (name, grp) in groups) for name, nums in table: print "row", name, "has nums", nums Seguramente el agrupamiento se podría hacer ya en SQL (¿con el agregador group_concat?), pero en fin, no pasa nada si se hace en Python. _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/