PRC schrieb: > Hi folks, > > I have a tuple of tuples, in the form--> ((code1, 'string1'),(code2, > 'string2'),(code3, 'string3'),) > > Codes are unique. A dict would probably be the best approach but this > is beyond my control. > > Here is an example: >>>> pets = ((0,'cat'),(1,'dog'),(2,'mouse')) > > If I am given a value for the code I need to retrieve the string > representation. The value is guaranteed to be valid. > > This is what I came up with... > >>>> value=1 >>>> [ pet for code, pet in pets if value==code ][0] > 'dog' > > It does the job, I was just curious if there was a better way to do > it. >
This is linear in the number of elements. It can get better (log_2 n) if you can rely on the order of codes as in your given example - then you should be able to use the module bisect to find the index quicker. Diez -- http://mail.python.org/mailman/listinfo/python-list