[Python-es] Forma pytonica de llenar un TreeListCtrl

Chema Cortes pych3m4 en gmail.com
Jue Mar 1 20:27:09 CET 2012


El día 1 de marzo de 2012 18:24, conterperawebs webs
<conterperawebs en 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


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