Multi-dimensional list initialization

Steven D'Aprano steve+comp.lang.python at
Fri Nov 9 07:37:41 CET 2012

On Fri, 09 Nov 2012 17:07:09 +1100, Chris Angelico wrote:

> On Fri, Nov 9, 2012 at 12:39 PM, Mark Lawrence <breamoreboy at>
> wrote:
>> On 07/11/2012 01:55, Steven D'Aprano wrote:
>>> Who knows? Who cares? Nobody does:
>>> n -= n
>> But I've seen this scattered through code:
>> x := x - x - x
> Can you enlighten us as to how this is better than either:
>  x := -x
> or
>  x := 0 - x
> ? I'm not seeing it. 

I'm hoping that Mark intended it as an example of crappy code he has 
spotted in some other language rather than a counter-example of something 
you would do.

To be pedantic... there may very well be some (rare) cases where you 
actually do want x -= x rather than just x = 0. Consider the case where x 
could be an INF or NAN. Then x -= x should give x = NAN rather than zero. 
That may be desirable in some cases.

At the very least, the compiler should NOT optimize away x = x - x to 
x = 0 if x could be a float, complex or Decimal.

> And I'm not seeing any nonnumeric that would
> benefit from being subtracted from itself twice (strings, arrays, sets,
> you can subtract them from one another but not usefully more than once).

How do you subtract strings?


More information about the Python-list mailing list