Glauco,

Be careful if you decide to use hash.
There is possibility of bugs due to that approach, (if hash(x) == hash(y) and x != y).
Even if the probability of bug is near 0, your computer will certainly recall you what is the murphy law.

If I were you, I would prefer another approach.

Cyril

On 7/19/05, Glauco <[EMAIL PROTECTED]> wrote:
Steven D'Aprano wrote:
> On Mon, 18 Jul 2005 12:17:37 +0200, Glauco wrote:
>
>
>>I want to insert a concept of alias in a dict_based class.
>>
>>The idea  is to have a facoltative name in the same dict that correspond
>>at the same value. With this alias i can change original value.
>>
>>example:
>>
>>mydict['a'] = 1
>>I must define an alias  example: myFunctAlias( mydict, 'a', 'b')
>>print mydict
>>{'a':1, 'b':1}
>>mydict['b'] = 2
>>print mydict
>>{'a':2, 'b':2}
>>
>>
>>The only idea i have is to implement two dictionary one for convert
>>name, alias in two keys with the same value (eg.numeric) in the first
>>dict. The second for store only one time the k, v .
>
>
> You need some sort of redirection, something like this (untested):
>
> class Doubledict:
>     def __init__(self, **kargs):
>         self.data = "">>         self.aliases = {}
>         for key in kargs:
>             # Point the key to a hash.
>             self.aliases[key] = hash(key)
>             # And point the hash at the value.
>             self.data[hash(key)] = kargs[key]
>
>     def setalias(self, key, alias):
>         # Point the alias to the same hash as the real key.
>         self.aliases[alias] = hash(key)
>
>     def __getitem__(self, key):
>         return self.data[self.aliases[key]]
>
>     def __setitem__(self, key, value):
>         self.data [self.aliases[key]] = value
>
>
> The only niggly worry I have is I'm not sure when hash can be used, when
> it is unique, or even if is it guaranteed to be unique.
>

Thank Steve, the idea was the same...
but yours using hash is much elegant.

Thank you
Glauco

--

                          \\\|///
                        \\  - -  //
                         (  @ @  )
+---------------------oOOo-( )-oOOo--------------------------+
|                                                            |
| I have a dream that one day this nation will rise up and   |
|   live out the true meaning of its creed: "We hold these   |
|   truths to be self-evident:that all men are created equal.|
| I have a dream that one day on the red hills of Georgia    |
|   the sons of former slaves and the sons of former         |
|   slaveowners will be able to sit down together at a table |
|   of brotherhood.                                          |
| I have a dream that one day even the state of Mississippi, |
|   a desert state, sweltering with the heat of injustice    |
|   and oppression, will be transformed into an oasis of     |
|   freedom and justice.                                     |
| I have a dream that my four children will one day live in  |
|   a nation where they will not be judged by the color of   |
|   their skin but by the content of their character.        |
| I have a dream today.                                      |
|                                                            |
|                        Martin Luther King, Jr  28 Ago 1963 |
+------------------------------------------------------------+
|                    glauco(at)uriland.it                    |
|  www.uriland.it      .oooO                ICQ: 115323690   |
+--------------------- (   )------ Oooo.---------------------+
                         \ (        (   )
                          \_)        ) /
                                    (_/
--
http://mail.python.org/mailman/listinfo/python-list

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to