Re: Partitioning a list from an index
- To: mathgroup at smc.vnet.net
- Subject: [mg56913] Re: [mg56890] Partitioning a list from an index
- From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
- Date: Tue, 10 May 2005 03:42:14 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
>-----Original Message----- >From: Guy Israeli [mailto:guyi1 at netvision.net.il] To: mathgroup at smc.vnet.net >Sent: Monday, May 09, 2005 7:46 AM >Subject: [mg56913] [mg56890] Partitioning a list from an index > >hello, > >how can partition a list (doesn't have to be with 'Partition') >such that the >partition will begin with a specific index? > >like this: > >list1={1,2,3,4,5,6,7,8,9,10} > >and i might want to split it to pairs or threes from index 6 >for example, so >for threes it will be > >{1,2,{3,4,5},{6,7,8},9,10} > >with or without padding to those that are left, depends on what it is >possible, or maybe put them together or something > >for pairs it will be {1,{2,3},{4,5},{6,7},{8,9},10} >again with or without padding > >thank you very much > >Guy > > > Partition will do, provided you calculate the appropriate kL: In[66]:= spos = 6; n = 3; In[67]:= k = n - Mod[spos - 1, n, 1] + 1 Out[67]= 2 In[68]:= Partition[list1, n, n, {k, 1}, {}] Out[68]= {{1, 2}, {3, 4, 5}, {6, 7, 8}, {9, 10}} In[69]:= Position[%, e_ /; Length[e] < n, {1}, Heads -> False] Out[69]= {{1}, {4}} In[70]:= FlattenAt[%%, %] Out[70]= {1, 2, {3, 4, 5}, {6, 7, 8}, 9, 10} In[71]:= spos = 6; n = 2; k = n - Mod[spos - 1, n, 1] + 1; Partition[list1, n, n, {k, 1}, {}]; Position[%, e_ /; Length[e] < n, {1}, Heads -> False]; FlattenAt[%%, %] Out[75]= {1, {2, 3}, {4, 5}, {6, 7}, {8, 9}, 10} -- Hartmut Wolf