Re: List Partition
- To: mathgroup at smc.vnet.net
- Subject: [mg53899] Re: [mg53895] List Partition
- From: János <janos.lobb at yale.edu>
- Date: Wed, 2 Feb 2005 18:10:40 -0500 (EST)
- References: <200502021125.GAA29007@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On Feb 2, 2005, at 6:25 AM, zak wrote:
> what could i do to partition the list:
> a={cat,E,in,the,hat,E,okay,fine,E}
> into
> a={{cat},{{in},{the},{hat}},{{okay},{fine}}}
>
> ie: every word in a sublist , and E determine the end of a sentence
> (a bigger list).
> zak
>
Here is a "procedural" solution.
In[49]:=
zaklst = {"cat", "E", "in",
"the", "hat", "E", "okay",
"fine", "E"}
Out[49]=
{"cat", "E", "in", "the",
"hat", "E", "okay", "fine",
"E"}
In[60]:=
zakprt = First[Last[
Reap[While[zaklst =!= {},
current = Take[zaklst,
{1, First[Flatten[
Position[zaklst,
"E"]]] - 1}];
zaklst = Take[zaklst,
{First[Flatten[
Position[zaklst,
"E"]]] + 1,
Length[zaklst]}];
Sow[current]; ]]]]
Out[60]=
{{"cat"}, {"in", "the",
"hat"}, {"okay", "fine"}}
Here is a "functional" one:
In[79]:=
(Rest[Most[Take[Join[{"E"},
zaklst], #1]]] & ) /@
Partition[Flatten[
Position[Join[{"E"},
zaklst], "E"]], 2, 1]
Out[79]=
{{"cat"}, {"in", "the",
"hat"}, {"okay", "fine"}}
I learned all these techniques from the members of this list.
János
----------------------------------------------
Trying to argue with a politician is like lifting up the head of a
corpse.
(S. Lem: His Master Voice)
- References:
- List Partition
- From: zak <chocolatez@gmail.com>
- List Partition