using "*" to make a list of lists with repeated (and independent) elements

88888 Dihedral dihedral88888 at googlemail.com
Sat Sep 29 13:01:30 EDT 2012


On Saturday, September 29, 2012 9:46:22 PM UTC+8, Ramchandra Apte wrote:
> On Thursday, 27 September 2012 04:14:42 UTC+5:30, Tim Chase  wrote:
> 
> > On 09/26/12 17:28, 88888 Dihedral wrote:
> 
> > 
> 
> > > 88888 Dihedral於 2012年9月27日星期四UTC+8上午6時07分35秒寫道:
> 
> > 
> 
> > >>>> In these conditions, how to make this list [[0,0,0],[0,0,0]] with "*" 
> 
> > 
> 
> > >>>> without this behavior?
> 
> > 
> 
> > >>>     >>> a = [[0]*3 for i in xrange(2)]
> 
> > 
> 
> > >>>     >>> a[0][0]=2
> 
> > 
> 
> > >>>     >>> a
> 
> > 
> 
> > >>>     [[2, 0, 0], [0, 0, 0]]
> 
> > 
> 
> > > 
> 
> > 
> 
> > > def zeros(m,n):
> 
> > 
> 
> > > 	a=[]
> 
> > 
> 
> > > 	for i in xrange(m):
> 
> > 
> 
> > > 		a.append([0]*n)
> 
> > 
> 
> > > 	return a
> 
> > 
> 
> > > 
> 
> > 
> 
> > > If  one wants to tranlate to C, this is the style.
> 
> > 
> 
> > 
> 
> > 
> 
> > But this is Python, so why the heck would anybody want to emulate
> 
> > 
> 
> > *C* style?  It could also be written in an assembly-language style,
> 
> > 
> 
> > COBOL style, or a Fortran style...none of which are particularly
> 
> > 
> 
> > valuable.
> 
> > 
> 
> > 
> 
> > 
> 
> > Besides, a C-style would allocate a single array of M*N slots and
> 
> > 
> 
> > then calculate 2d offsets into that single array. :-P
> 
> > 
> 
> > 
> 
> > 
> 
> > -tkc
> 
> 
> 
> 88888 Dihedral is a bot.

Don't you get it why I avoided the lambda one liner as a functon. 

I prefer the def way with a name chosen.

 



More information about the Python-list mailing list