preferring [] or () in list of error codes?

Scott David Daniels Scott.Daniels at Acm.Org
Mon Jun 8 18:15:07 EDT 2009


mh at pixar.com wrote:
> Is there any reason to prefer one or the other of these statements?
>         if e.message.code in [25401,25402,25408]:
>         if e.message.code in (25401,25402,25408):
> I'm currently using [], but only coz I think it's prettier
> than ().
> context: these are database errors and e is database exception,
> so there's probably been zillions of instructions and io's
> handling that already.

I lightly prefer the (a, b, c) -- you do put spaces after the comma,
don't you?  A tuple can be kept as a constant, but it requires (not
very heavy) program analysis to determine that the list need not be
constructed each time the statement is executed.  In addition, a
tuple is allocated as a single block, while a list is a pair of
allocations.

The cost is tiny, however, and your sense of aesthetics is part of
your code.  So unless you only very slightly prefer brackets, if I
were you I'd go with the list form.

--Scott David Daniels
Scott.Daniels at Acm.Org



More information about the Python-list mailing list