Re: Partitioning a list from an index
- To: mathgroup at smc.vnet.net
- Subject: [mg56953] Re: Partitioning a list from an index
- From: bghiggins at ucdavis.edu
- Date: Wed, 11 May 2005 05:24:08 -0400 (EDT)
- References: <d5mv78$e05$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Guy, Here is one way to do the task:
partitionfunc[start_, size_, alist_] := alist /. {x1___,
x_ /; x == start, y___} :> {x1, Apply[
Sequence, Partition[Flatten[{x, Drop[{y}, -Mod[Length[{x, y}],
size]]}],
size]], Apply[Sequence, Take[{y}, -Mod[Length[{x, y}], size]]]}
In[57]:=partitionfunc[4,2,list1]
Out[57]={1,2,3,{4,5},{6,7},{8,9},10}
I am sure others will have a less kludgy way to do it.
Cheers,
Brian
Guy Israeli wrote:
> 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