MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Partitioning a list from an index


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


  • Prev by Date: Re: solve() problem since new ROM update
  • Next by Date: Re: Re: FilledPlot: Curves->Back option and Epilog not working?
  • Previous by thread: Re: Partitioning a list from an index
  • Next by thread: Re: Partitioning a list from an index