Re: Intersection problem

• To: mathgroup at smc.vnet.net
• Subject: [mg125993] Re: Intersection problem
• From: Bob Hanlon <hanlonr357 at gmail.com>
• Date: Wed, 11 Apr 2012 18:21:52 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <201204100627.CAA10654@smc.vnet.net>

list1 = {{a, x}, {b, y}, {c, z}};

list2 = {b, c, d};

Select[list1, MemberQ[list2, #[[1]]] &]

{{b, y}, {c, z}}

Cases[list1, _?(MemberQ[list2, #[[1]]] &)]

{{b, y}, {c, z}}

Cases[list1, {x_, _} /; MemberQ[list2, x]]

{{b, y}, {c, z}}

DeleteCases[list1, _?(FreeQ[list2, #[[1]]] &)]

{{b, y}, {c, z}}

DeleteCases[list1, {x_, _} /; FreeQ[list2, x]]

{{b, y}, {c, z}}

Pick[list1, MemberQ[list2, #[[1]]] & /@ list1]

{{b, y}, {c, z}}

Bob Hanlon

On Tue, Apr 10, 2012 at 2:27 AM, Cisco Lane <travlorf at yahoo.com> wrote:
> I need to select out the elements of the first list whose first elements are contained in the second list. For example
>
> first list: {{a,x},{b,y},{c,z}}
>
> second list: {b,c,d}
>
> result: {{b,y},{c,z}}
>
> Is there a quick way to do this? Intersection, maybe somehow?

• Prev by Date: Replace a vertical line in ListPlot
• Next by Date: nonlinearmodelfit problem
• Previous by thread: Re: Intersection problem
• Next by thread: Re: Intersection problem