Re: Cases to Select ?
- To: mathgroup at smc.vnet.net
- Subject: [mg73962] Re: [mg73920] Cases to Select ?
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sat, 3 Mar 2007 03:56:06 -0500 (EST)
- References: <200703030602.BAA02963@smc.vnet.net>
On 3 Mar 2007, at 07:02, Mr Ajit Sen wrote: > Dear MathGroup, > > Consider the following list: > > A={{1, 4, 5}, {3, -6, 1}, { 2, 0, 4}, {4, 3, 8}, > {-5, 1, 4}, {3, 7, 4},{4,6,0,3}, {-3, 4, 3, 8, 1}} > > To retrieve those sublists containing 3 and 4, I'm > using > > A34C=Cases[A, {___, 4, ___, 3, ___} | {___, 3, ___, > 4, ___}]. > > My first query is whether there is a (neater ?) way > to combine the 2 patterns, possibly using MemberQ as > in > > A34S=Select[A, MemberQ[#, 3] && MemberQ[#, 4] &] . I am not sure why this is neater, but can certianly do the same thing with Cases: Cases[A,_?(MemberQ[#,3]&&MemberQ[#,4]&)] {{4,3,8},{3,7,4},{4,6,0,3},{-3,4,3,8,1}} > > > Now, say I'd like to pick out those sublists that do > not contain 3 and 4. Then I don't get the result > {3,-6,1} with > > NotA34S=Select[A, (FreeQ[#, 3] && FreeQ[#, 4]) &] > > nor with > Select[A, (FreeQ[#, 3] || FreeQ[#, 4]) &] > nor with > Complement[A,A34S] > > Why not? I don't think !MemberQ exists. Looking at > all negations in the Help browser, I guess that Unsame > could do the trick but am unable to apply it. > > Finally, how could I do it using Cases > > NotA34C= Cases[A, pattern??] ? The simplest way is to use DeleteCases: DeleteCases[A, _?(MemberQ[#, 3] && MemberQ[#, 4] &)] Andrzej Kozlowski
- References:
- Cases to Select ?
- From: Mr Ajit Sen <senra99@yahoo.co.uk>
- Cases to Select ?