Re: List Partition
- To: mathgroup at smc.vnet.net
- Subject: [mg53904] Re: List Partition
- From: "Steve Luttrell" <steve_usenet at _removemefirst_luttrell.org.uk>
- Date: Wed, 2 Feb 2005 18:10:47 -0500 (EST)
- References: <ctqe1f$sf7$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
This does what you want: a={"cat","E","in","the","hat","E","okay","fine","E"} Split[Split[a,#2=="E"&],Last[#1]!="E"&]/.{x_,"E"}\[Rule]{x} Breaking this down into 3 steps gives: 1. Split[a,#2=="E"&] splits the original list after each "E" to give {{cat,E},{in},{the},{hat,E},{okay},{fine,E}} 2. Split[%,Last[#1]!="E"&] then splits the above list after each sublist that ends in "E" to give {{{cat,E}},{{in},{the},{hat,E}},{{okay},{fine,E}}} 3. %/.{x_,"E"}\[Rule]{x} then removes all the trailing "E" elements from the above sub-sublists to give {{{cat}},{{in},{the},{hat}},{{okay},{fine}}} The only difference between this result and yours is that that it gives the more consistent {{cat}} rather than your preferred {cat}. However, if you really want to do things your way then add the 4th step 4. %/.{{x_}}\[Rule]{x} to give {{cat},{{in},{the},{hat}},{{okay},{fine}}} Steve Luttrell "zak" <chocolatez at gmail.com> wrote in message news:ctqe1f$sf7$1 at smc.vnet.net... > 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 >