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

Duncan Booth duncan.booth at invalid.invalid
Fri Mar 27 16:06:51 EDT 2009


Carl Banks <pavlovevidence at gmail.com> wrote:

> On Mar 27, 11:20 am, Paul Rubin <http://phr...@NOSPAM.invalid> wrote:
>> Carl Banks <pavlovevide... at gmail.com> 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