DD,
snazim se ulozit slovnik ze souboru (cca 6milionu slov - soubor ma asi 80MB, 
kazde zvlast na kazdem radku), do struktury Trie (co pismeno, to uzel - 
spolecne prefixy slov). Cilem je redukovat pametovy prostor zabrany vlastnim 
slovnikem. 
At se vsak problem snazim vyresit jakkoli, stale narazim na nedostatek pameti. 
Zkousel jsem jiz vnorene seznamy, slovniky a naposledy strukturu, neco ve 
smyslu:
<pre>
class TNode:
        term, subNodes, data = None, (), None

        def __init__(self, data):
                self.data=data          #vlastni pismeno
                self.subNodes=()        #ntice poduzli
                self.term=None          #ukoncovaci terminal

class tri:
        #############################
        def __init__(self):
                """
                Inicializace
                """
                self.root=self.addNode('#')

        ############################
        def add(self, word):
                """
                Prida slovo do slovniku
                """
                curNode=self.root
                for letter in word:
                        notInTree=True
                        for i in curNode.subNodes:
                                if i.data==letter:
                                        notInTree=False
                                        index=i
                                        break
                        if notInTree:
                                temp=list(curNode.subNodes)
                                temp.append(self.addNode(letter))
                                curNode.subNodes=tuple(temp)
                                index=curNode.subNodes[-1]
                        curNode=index
</pre>

Ovsem i pri pouziti teto struktury, nactu-li vice nez 350 000 slov tak se pamet 
zabrana programem vysplha na nejakych cca 100MB.

Napadlo by nejake vhodne efektivni reseni?

Dekuji za odpoved

P. H.
_______________________________________________
Python mailing list
[EMAIL PROTECTED]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem