A question of style (finding item in list of tuples)

Steven D'Aprano steve+comp.lang.python at pearwood.info
Mon May 21 09:10:32 EDT 2012


On Mon, 21 May 2012 08:37:29 -0400, Roy Smith wrote:

[...]
> The above code works, but it occurs to me that I could use the much
> shorter:
> 
>     def experience_text(self):
>         return dict(CHOICES).get("self.level", "???")
> 
> So, the question is, purely as a matter of readability, which would you
> find easier to understand when reading some new code?

Definitely the dictionary lookup.

Rather than convert list CHOICES to a dict every time, you might convert 
it to a dict *once*, then just write:

return CHOICES.get(self.level, "???")

> Assume the list
> of choices is short enough that the cost of building a temporary dict on
> each call is negligible.

Negligible or not, why bother?

Not that it really matters -- if you have a good reason for CHOICES to 
remain a list, still stick with the dict lookup rather than a explicit 
loop.


-- 
Steven



More information about the Python-list mailing list