On Lun, Apr 6, 2009 16:43, Antoine Pitrou wrote: > Cesare Di Mauro <cesare.dimauro <at> a-tono.com> writes: >> def f(): return ['a', ('b', 'c')] * (1 + 2 * 3) > [...] >> >> With proper constant folding code, both functions can be reduced >> to a single LOAD_CONST and a RETURN_VALUE (or, definitely, by >> a single instruction at all with an advanced peephole optimizer). > > Lists are mutable, you can't optimize the creation of list literals by > storing > them as singleton constants. > > Regards > > Antoine.
You are right, I've mistyped the example. def f(): return ('a', ('b', 'c')) * (1 + 2 * 3) generates a single instruction (depending on the threshold used to limit folding of sequences), whereas def f(): return ['a', ('b', 'c')] * (1 + 2 * 3) needs three. Sorry for the mistake. Cheers, Cesare _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com