At Sunday 31/12/2006 14:25, vertigo wrote:

I use nltk package - but it should not matter here.

Yes, it does. The framework should provide some form of tree traversal.

So i wanted to 'travel thru my tree' to last node which should be changed:
>>> tree6 = Tree('main', ['sub1', 'sub2'])
>>> subtree = tree6[0]
>>> subtree
'sub1'
>>> subtree = Tree('newsub',[])
>>> subtree
('newsub': )
>>> tree6
('main': 'sub1' 'sub2')
The problem is that subtree is some kind of a new variable (not pointer)
so changing it i will not alter tree6.

This, yes, is a general Python question. When you bind something to the name "subtree", it doesn't matter what were "subtree" pointing to before. Read http://effbot.org/zone/python-objects.htm

How to alter tree6 while
'travelling along it's nodes',
without messy referencing as tree6[0][1][0][1][1][1][0].......... ?

Without any further knowledge of the Tree objects, you could do something like this:

def traverse_tree(tree, *ids):
    result = tree
    while ids:
        key = ids.pop(0)
        tree = tree[key]
    return tree

and say: traverse_tree(tree6, 0, 1, 0, 1, 1, 1, 0) or traverse_tree(tree6, *[0,1,0,1,1,1,0]) or traverse_tree(tree6, *[0,1,0,1,1])[0] = another_object


--
Gabriel Genellina
Softlab SRL

        

        
                
__________________________________________________ Preguntá. Respondé. Descubrí. Todo lo que querías saber, y lo que ni imaginabas, está en Yahoo! Respuestas (Beta). ¡Probalo ya! http://www.yahoo.com.ar/respuestas
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to