El día 1 de marzo de 2012 18:24, conterperawebs webs
<conterperaw...@gmail.com> escribió:

>   Estoy aprendiendo Python y estoy seguro que este codigo (que me funciona)
> se puede simplificar mucho, programando de forma "pytonica".

Tampoco te obsesione mucho, ser pytónico no es obligatorio. Lo
importante de verdad es que el código sea entendible para que sea
sencillo modificarlo en un futuro, por tí o por otro.

Si he entendido bien lo que quieres, sería un caso típico para
'itertools.groupby'. Te pongo el código para darte una idea, pero
deberás ajustarlo a tu problema en concreto:

from operator import itemgetter
from itertools import groupby

getroot = itemgetter(1)
getfamilia = itemgetter(2)
getsubfamilia = itemgetter(3)

for familia_name, subfamilia in groupby(Registros, itemgetter(2)):

    item = self.tree.AppendItem(raiz, familia_name, data=None)

    for subfamilia_name, nodos in groupby(subfamilia, itemgetter(3)):

        familia = self.tree.AppendItem(item, subfamilia_name, data=None)

        for reg in nodos:

            final = self.tree.AppendItem(familia, reg[4], data=None)
            self.tree.SetItemText(final, reg[5], 1)






-- 
Hyperreals *R: http://ch3m4.org/blog
Quarks, bits y otras criaturas infinitesimales
_______________________________________________
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