Re: Partition
- To: mathgroup at smc.vnet.net
- Subject: [mg71656] Re: [mg71611] Partition
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Sun, 26 Nov 2006 03:48:37 -0500 (EST)
- Reply-to: hanlonr at cox.net
Off[General::spell1];
f1[list_List,n_Integer]:=Flatten[{First[#],Rest[#]}&/@Partition[list,n],1]
f2[list_List,n_Integer]:=
Partition[list,n]/.a_?(Length[#]==n&):>Sequence[First[a],Rest[a]];
f3[list_List,n_Integer]:=Module[{k},Sequence@@@Table[{list[[k]],
Take[list,k+{1,n-1}]},{k,1,Length[list],n}]];
list={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o};
f1[list,5]
{a,{b,c,d,e},f,{g,h,i,j},k,{l,m,n,o}}
%==f2[list,5]==f3[list,5]
True
list=Table[Random[],{200000}];
Timing[f1[list,5];]
{0.731719 Second,Null}
Timing[f2[list,5];]
{0.889727 Second,Null}
Timing[f3[list,5];]
{1.14295 Second,Null}
Bob Hanlon
---- KFUPM <hussain.alqahtani at gmail.com> wrote:
> Dear All
>
> I have a very large list of numbers that look like this: ( although the
> size is different)
>
> list={a,b,c,d,e,f,g,h,i,j,k,l,m,n,o}
>
> And i need to rewrite the list into
>
> list2={a,{b,c,d,e},f,{g,h,i,j,},k,{l,m,n,o}}
>
> Since my list is too big, i need Mathematica to do it for me regardless
> of the site of the list.
>
> I would appreciate it if you can help me in this regard,
>
> Thanks
>
> KFUPM
>