How to store the reference of a dictionary element ?

Terry Reedy tjreedy at udel.edu
Thu Dec 19 17:22:21 EST 2002


"Alfredo P. Ricafort" <alpot at mylinuxsite.com> wrote in message
news:mailman.1040293705.17998.python-list at python.org...
> On Thu, 2002-12-19 at 15:46, Terry Reedy wrote:
>
> > Note that what you have presented up to here assumes that all keys
are
> > unique -- that if File has subkey New, then Edit does not.
>
> You're right.  The keys should be unique.  I'm actually planing to
use
> the the path(w/o the '&') as keys.
>
> > 'Element' is not a Python term, and therefore your subject line
and
>
> Forgive me, I'm a newbie.
>
> > initial post and even the line above are ambiguous.  Do you mean
the
> > key string 'parentKey' or the value list
[attribute1,attribute2,None]?
>
> I meant the value list.  I want the value list to be a pointer to
> another 'record'(key-value pair) in the dictionary.
>
> > above you mean 'not a copy of the value'.   If so, then the
statement
> > you need is
> >
> > inputData['childKey'] = [attribute1, attribute2,
> > inputData['parentKey']]
> >
>
> This won't do.  If the value list of inputData['parentKey'] is
changed
> the inputData['childKey'] will not see the changes.
>
> > Structure one require two statements for each child (or
grandchild)
> > line.  Suppone you already have parentKey : [attr1, attr2] in
input
> > Data and you come to the first child line.  Then
> >
> > inputData['childKey'] = [attribute1, attribute2]
> > inputData['parentKey'].append[inputData['childKey']]
> >
>
> I think this suffers the same problem I described above.
>
> > For grandchild lines, append the grandchild attribute list to the
> > child list, and so on.  When you do so, you will also be able to
> > access that list via the parent list, since the child list really
is
> > 'contained' within the parent list.  You will end up with a set of
> > trees, each represented as a list with lists, etc and a dict
mapping
> > keys to nodes (lists) within some tree.  To identify parents, you
> > actually need a superparent so there is just one tree.
> >
>
> This is  what I have now, which is multi-level. I am trying to get
away
> from that.
>
> > # produces, after whitespace insertion
> >
> >  [['/&File', 'text', 'text',
> >      ['/File/&New', 'text', 'text',
> >         ['/File/New/&Folder', 'text', 'text'],
> >         ['/File/New/&Directory', 'text', 'text']]],
> >   ['/&Edit', 'text', 'text']]
>
> The output that I am looking for, if I were to use structure (2),
would
> be:
>
> {
>  '/File':               ['text', 'text', None],
>  '/File/New':           ['text', 'text', <ptr. to '/File'>],
>  '/File/New/Folder':    ['text', 'text', <ptr. to '/File/New'>],
>  '/File/New/Directory': ['text', 'text', <ptr. to '/File/New'>],
>  '/Edit':               ['text', 'text', None]
> }
>
> So my problem is how to store that pointer to(<ptr. to..>).
>
> The structure that I am aiming for is really like a linked list.  As
> long as the pointer(ptr. to) is not changed, even if the
> attributes(values) are changed, the relationship will remain intact.
>
> Of course, I have the option to store the 'ptr. to' as string.  But
> finding the parent(or children) would be cumbersome.
>
> AL
>
>
>
>
>





More information about the Python-list mailing list