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