MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Select from list

  • To: mathgroup at smc.vnet.net
  • Subject: [mg87780] Re: [mg87729] Select from list
  • From: Curtis Osterhoudt <cfo at lanl.gov>
  • Date: Wed, 16 Apr 2008 22:32:41 -0400 (EDT)
  • Organization: LANL
  • References: <200804160904.FAA23961@smc.vnet.net>
  • Reply-to: cfo at lanl.gov

  One possible way: 

In[46]:= Flatten@
 Position[(MemberQ[#, 2] && MemberQ[#, 3] &) /@ ptX, True]

Out[46]= {1, 2, 5}
        

On Wednesday 16 April 2008 03:04:08 Steve Gray wrote:
> I have a list like this:
>
> ptX=
> {{1, 2, 3, 4}, {1, 2, 3, 5}, {1, 2, 4, 5}, {1, 3, 4, 5}, {2, 3, 4, 5}}
>
> and I want a list pointing to all the sublists above that contain both
> a 2 and a 3. In this example I would get {1,2,5}. The best solution I
> have, with more generality, is:
>
> va = 2;
> vb = 3;
> za = Map[Cases[#1, va]&, ptX] /. {} -> {0}
> zb = Map[Cases[#1, vb]&, ptX] /. {} -> {0}
> Flatten[Position[za*zb, {va*vb}]]
>
> which gives
>
> {{2}, {2}, {2}, {0}, {2}}
> {{3}, {3}, {0}, {3}, {3}}
> {1, 2, 5}.
>
> (This doesn't work if va or vb is zero. That's ok.)
> There's probably a better way. Anyone? Thank you.
>
> Steve Gray



-- 
==========================================================
Curtis Osterhoudt
cfo at remove_this.lanl.and_this.gov
PGP Key ID: 0x4DCA2A10
Please avoid sending me Word or PowerPoint attachments
See http://www.gnu.org/philosophy/no-word-attachments.html
==========================================================


  • Prev by Date: Re: Dynamic (more)
  • Next by Date: Re: transformation rule (some
  • Previous by thread: Re: Select from list
  • Next by thread: Re: Select from list