data structure

Jason tenax.raccoon at
Sun Sep 3 22:41:17 CEST 2006

noro wrote:
> Hello again.
> I have a task i need to do and i can't seem to find an elegent
> solution.
> i need to make a tree like data structure (not necessry a binary tree).
> i would like each node to access his sons in a dicionary kind of why,
> for example: if  ROOT node has the name 'A' and 'AA', 'AB' are his
> sons, and 'ABA' is 'AB son etc' (in this name scheme the letters from
> left to right shows the route from the root to the node) then
> ROOT['AB'] will point to 'AB' node and ROOT['AB'][ABA'] will point to
> 'ABA' node.
> the tree does not have to be symmarical and every node link to
> different number of nodes. two nodes can have the same name if they are
> in a different location in the tree. so ROOT['factory1]['manager'] and
> ROOT['factory2']['manager'] can be in the same tree and point to
> different objects.
> all up to now i can manage.
> ---------------------
> my problem is this: i would like to find a way to easly construct the
> tree by giving some simple template, somthing similer to:
> "
> ROOT={'factory1':FACTORY,'facory2':FACTORY,'linux':OS,'windows':OS}
> FACTORY={'manager':EMPLOEY,'worker':EMPLOEY,'office':BUILDING,'......}
> OS={'ver':VERSION,'problems':LIST,....}
> "
> i started bulding the class NODE as an extention of  "dict" with the
> keys are the childern names and the items are the next node reference.
> the proablem was that as you can see from the above example 'factory1'
> and 'factory2' point to the same object. i would like to have 2
> different objects of FACTORY. making FACTORY a template and not an
> object.
> i'll appreciate any comment
> amit

You can make a shallow copy of a dictionary using the dictionary's copy
method.  To make a completely new copy, use the deepcopy function in
the copy module.  Please see the copy module's documentation on the
limits and differences between deep copies and shallow copies.


More information about the Python-list mailing list