Re: Extracting information from lists
- To: mathgroup at smc.vnet.net
- Subject: [mg63343] Re: [mg63323] Extracting information from lists
- From: "David Park" <djmp at earthlink.net>
- Date: Sat, 24 Dec 2005 16:02:53 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Tony, Here is one method, but there may be shorter methods. (I changed the first 6 in your list to 1 to correspond with your result.) list = {7, 9, 1, 1, 8, 1, 1, 6, 5, 1, 1, 1, 8, 7, 6, 1, 1, 1, 1, 7}; dupstartpositions[list_?VectorQ] := Module[{lengths, startpositions}, lengths = Length /@ Split[list]; startpositions = Drop[FoldList[Plus, 1, lengths], -1]; Inner[If[#1 > 1, #2, Null] &, lengths, startpositions, List] /. Null -> Sequence[] ] dupstartpositions[list] {3, 6, 10, 16} David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Tony King [mailto:mathstutoring at ntlworld.com] To: mathgroup at smc.vnet.net Does anyone know of a function that will allow me to extract the positions of the first elements of runs of similar elements within a list. For example, suppose that list={7,9,1,6,8,1,1,6,5,1,1,1,8,7,6,1,1,1,1,7} I need a function that will return {3,6,10,16} corresponding to the runs {1},{1,1},{1,1,1},{1,1,1,1} within list Many thanks Tony