Any way to use a range as a key in a dictionary?

Duncan Booth duncan.booth at invalid.invalid
Fri Mar 27 21:06:51 CET 2009

Carl Banks <pavlovevidence at> wrote:

> On Mar 27, 11:20 am, Paul Rubin <http://phr...@NOSPAM.invalid> wrote:
>> Carl Banks <pavlovevide... at> writes:
>> > >      if x in theDict:
>> > >           print x, v
>> > Where does v come from?
>> Oops, pasted from original.  Meant of course "print x, theDict[x]".
> You have look up x twice with that code, whereas you wouldn't have to
> with this:
> v = theDict.get(x)
> if v is not None:
>     print x, v

Note that while you only lookup x in the dict once your code does still 
involve two dict lookups: once to lookup the get method and once to lookup 
x. It also involves creating a new bound method object so if performance is 
a concern you'll find that either the 'if x in theDict: ...' or the 
try...except are likely to be faster.

More information about the Python-list mailing list