Re: Delete elements from list..
- To: mathgroup at smc.vnet.net
- Subject: [mg116629] Re: Delete elements from list..
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Tue, 22 Feb 2011 04:42:53 -0500 (EST)
f1[mylist_] := Module[{a = {First[mylist]}}, Scan[If[# > a[[-1]], AppendTo[a, #]] &, Rest[mylist]]; a] f2[mylist_] := Fold[If[#2 > #1[[-1]], Append[#1, #2], #1] &, {First[mylist]}, Rest[mylist]] mylist = RandomInteger[{1, 100000}, 1000000]; f1[mylist] // Timing {2.32822, {503, 64497, 98557, 99205, 99964, 99970, 99995, 99996, 100000}} f2[mylist] // Timing {0.26541, {503, 64497, 98557, 99205, 99964, 99970, 99995, 99996, 100000}} Bob Hanlon ---- Maarten van der Burgt <Maarten.VanDerBurgt at kla-tencor.com> wrote: ============= Hallo, I have a list like: mylist = {1, 2, 3, 4, 5, 6, 4, 5, 7, 8, 9} I want to delete any element which is not strictly larger than the previous element, until my new list has only increasing values. This means in mylist above I want to delete the 4 and the 5 at position 7 and 8. Any elegant and fast way for doing this? In practice I want to do this for a large amount (1000) of very large lists (1000). So speed is important. Thanks for your help. Maarten