[Python-Dev] list of constants -> tuple of constants

Guido van Rossum gvanrossum at gmail.com
Sun Feb 6 17:54:58 CET 2005


On Sun, 6 Feb 2005 10:49:05 -0600, Skip Montanaro <skip at pobox.com> wrote:
> 
> In a python-checkins message, Raymond stated:
> 
>     Raymond> Replace list of constants with tuples of constants.
> 
> I understand the motivation here (the peephole optimizer can convert a tuple
> of constants into a single constant that need not be constructed over and
> over), but is the effort worth the cost of changing the logical nature of
> the data structures used?  If lists are conceptually like vectors or arrays
> in other languages and tuples are like C structs or Pascal records, then by
> converting from list to tuple form you've somehow muddied the data structure
> water just to take advantage of tuples' immutability.
> 
> Wouldn't it be better to have the peephole optimizer recognize the throwaway
> nature of lists in these contexts:
> 
>     for elt in [1, 2, 4, 8, 16]:
>         ...
> 
>     if foo in [list, tuple]:
>         ...
> 
> (anywhere a list of constants immediately follows the "in" or "not in"
> keywords) and convert them into constants?  The cases you converted all
> matched that usage.

I'm with Skip, *unless* the change is in a PROVEN TIME-CRITICAL PIECE OF CODE.

Let's not hand-micro-optimize code just because we can.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list