A bug?
Denis McMahon
denismfmcmahon at gmail.com
Mon Oct 27 20:36:53 EDT 2014
On Mon, 27 Oct 2014 09:01:57 -0700, umatrp at gmail.com wrote:
> I use python 3.4.0 version. In the course of developing / running a
> python program, I have encountered a problem. I have reproduced below a
> simple program to bring it out.
>
>
>>>> d = [[0]*3]*4 dd = [1,2,3,4,5,6,7,8,9,10,11,12]
>>>> for i in range(4):
> ... for j in range(3): d[i][j] = dd[i*3+j]
> ...
>>>> d
> [[10, 11, 12], [10, 11, 12], [10, 11, 12], [10, 11, 12]]
>>>>
> d is not transferred to dd as expected?
> Of course I can use 'append' & do my job (less elegantly though).
Not sure if this is elegant or not:
d = [[list(range(1,13))[i*3+j] for j in range(3)] for i in range(4)]
but it seems to be a one-line solution for what you're trying to do.
--
Denis McMahon, denismfmcmahon at gmail.com
More information about the Python-list
mailing list