[issue14719] Lists: [*N]*N != [[0 for _ in range(N)] for __ in range(N)]
report at bugs.python.org
Fri May 4 08:06:20 CEST 2012
Yuval Greenfield <ubershmekel at gmail.com> added the comment:
This isn't a bug and should be closed. It's more of a stack overflow question.
If you'd like to change this fundamental behavior of a very common operation in python you should make a proposal to the python ideas mailing list at http://mail.python.org/mailman/listinfo/python-ideas
In your example board_2 is equivalent to:
row =  * N
board_2 = row * N
All the rows are the same initial row. As opposed to board_1 where each row is a new row.
[id(i) for i in board_2]
The initial equivalence is because they do represent the same values (NxN list of all zeroes). What should python compare if not by values?
Python tracker <report at bugs.python.org>
More information about the Python-bugs-list