Re: Select only certain sublists matching criteria
- To: mathgroup at smc.vnet.net
- Subject: [mg111004] Re: Select only certain sublists matching criteria
- From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
- Date: Fri, 16 Jul 2010 05:19:04 -0400 (EDT)
Hi, yes you can use Select. But with pattern matching and Cases it is readable too: l = {{0, -4, 2.283}, {0.5, -4, 2.282}, {1, -4, 2.280}, {1.5, -4, 2.276}, {2, -4, 2.271}, {2.5, -4, 2.264}, {3, -4, 2.255}, {3.5, -4, 2.242}}; Cases[l, {_, _, _?(Abs[# - 2.25] < 0.01 &)}] Select[l, Abs[#[[3]] - 2.25] < 0.01 &] Cheers Patrick On Thu, 2010-07-15 at 03:09 -0400, Chris Poole wrote: > I have a list like this: > {{0, -4, 2.283}, {0.5, -4, 2.282}, {1, -4, 2.280}, {1.5, -4, > 2.276}, {2, -4, 2.271}, {2.5, -4, 2.264}, {3, -4, 2.255}, {3.5, -4, > 2.242}} > > I want to look at each list of 3 numbers, and keep only the lists where the third item in each list fits some criteria. > > I can do something like this: > Select[{2, 15, 1, 16, 17}, Abs[3 - #] < 3 &] > > But it only works for flat lists. > > For example, I want only the lists where the third item is around 2.25 +- 0.001. Something like that. > > I can work out how to get Select to operate on the 3rd item of each sublist, but not how to then keep that entire list. > > If anyone has any ideas, they are much appreciated. >