MathGroup Archive 2012

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

Search the Archive

Re: Group and Replace itens sequence in a list


Clear[f]

f[list_?VectorQ] := Cases[
  (list //. {s___, a, b, a, r___} -> {{s}, {r}}) /.
   {} ->
    Sequence[], _?VectorQ, Infinity]

f[{1, 2, 3, a, b, a, 4, 5, 6, a, b, c, 7, 8, 9, a, b, a, 10, 11, 12}]

{{1, 2, 3}, {4, 5, 6, a, b, c, 7, 8, 9}, {10, 11, 12}}

f[{a, b, a, 1, 2, 3, a, b, a, 4, 5, 6, a, b, c, 7, 8, 9, a, b, a, 10,
  11, 12}]

{{1, 2, 3}, {4, 5, 6, a, b, c, 7, 8, 9}, {10, 11, 12}}

f[{1, 2, 3, a, b, a, 4, 5, 6, a, b, c, 7, 8, 9, a, b, a, 10, 11, 12,
  a, b, a}]

{{1, 2, 3}, {4, 5, 6, a, b, c, 7, 8, 9}, {10, 11, 12}}

f[{a, b, a, 1, 2, 3, a, b, a, 4, 5, 6, a, b, c, 7, 8, 9, a, b, a, 10,
  11, 12, a, b, a}]

{{1, 2, 3}, {4, 5, 6, a, b, c, 7, 8, 9}, {10, 11, 12}}


Bob Hanlon


On Thu, Aug 23, 2012 at 2:52 AM, Murta <rodrigomurtax at gmail.com> wrote:
> Hi All
>
>    I have a simple problem that is:
>
> l={1,2,3,a,b,a,4,5,6,a,b,c,7,8,9,a,b,a,10,11,12}
>
> I want to replace all a,b,a sequence by X to get:
>
> l={1,2,3,X,4,5,6,a,b,7,8,9,X,10,11,12}
>
> Then I want to group it by X intervals as
> l={{1,2,3},{4,5,6,a,b,7,8,9},{10,11,12}}
>
> If I don't need to put the intermediate X, even better!
> I think the with pattern, RaplaceAll and DeleteCases I can do It. Some clue?
> Tks
> Murta
>
>
>



  • Prev by Date: How Expand?
  • Next by Date: Re: function manipulation
  • Previous by thread: Re: Group and Replace itens sequence in a list
  • Next by thread: Re: Group and Replace itens sequence in a list