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