Re: repeating elements in a list
- To: mathgroup at smc.vnet.net
- Subject: [mg54931] Re: repeating elements in a list
- From: Scott Hemphill <hemphill at hemphills.net>
- Date: Sun, 6 Mar 2005 00:56:44 -0500 (EST)
- References: <d0dekq$lek$1@smc.vnet.net>
- Reply-to: hemphill at alumni.caltech.edu
- Sender: owner-wri-mathgroup at wolfram.com
Torsten Coym <torsten.coym at eas.iis.fraunhofer.de> writes: > Hello, > > suppose I have list > > lst={A, B, C} > > and I want to create a new list, where all elements are repeated n times > so that (for n=3): > > newlst={A, A, A, B, B, B, C, C, C} > > I have the following code to do this: > > n=3; > newlst=Flatten[Table[Table[lst[[i]], {n}], {i, Length[lst]}]]; > > but I'm pretty sure, that there must be a more elegant way to solve the > problem. I would do it like so: Join @@ ( Table[#,{n}]& /@ lst ) Using Join instead of Flatten allows you to also make n copies of list objects, if that is the desired behavior: In[1]:= lst = {{A,B},C,D} Out[1]= {{A, B}, C, D} In[2]:= n=3 Out[2]= 3 In[3]:= Join @@ ( Table[#,{n}]& /@ lst ) Out[3]= {{A, B}, {A, B}, {A, B}, C, C, C, D, D, D} Scott -- Scott Hemphill hemphill at alumni.caltech.edu "This isn't flying. This is falling, with style." -- Buzz Lightyear