On Mar 26, 5:10 pm, "andrew cooke" <and...@acooke.org> wrote: > Mudcat wrote: > > I would like to use a dictionary to store byte table information to > > decode some binary data. The actual number of entries won't be that > > large, at most 10. That leaves the other 65525 entries as 'reserved' > > or 'other' but still need to be somehow accounted for when > > referenced. > > [...] > > i don't completely follow what you are doing, but i currently use the > following to find a transition in a finite automaton for a regular > expression, and i suspect it's similar to what you want. > > my problem is that i want to associate certain ranges of characters with a > particular value. for example, a-c might be 1, p-x might be 2. i use > intervals that are (a, b) tuples, where a and b are the inclusive bounds > (so (a, b) means a <= x <= b). > snip > > and i just realised that i deleted the code that lets me also associate > values with intervals! but hopefully that gives you the idea. bisect can > be used to find values via a sorted index. so once you find "index" > above, you can use that to return a value from an array. > > i doubt this is super-fast (i think the bisect library is pure python), > but it was good enough for my initial attempt. > > andrew
I wonder if there is a faster method than a binary search, or what the proof that there isn't is. -- http://mail.python.org/mailman/listinfo/python-list