MathGroup Archive 1996

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

Search the Archive

Re: How do I use Select[list,condition]?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg4534] Re: How do I use Select[list,condition]?
  • From: wagner at motel6.cs.colorado.edu (Dave Wagner)
  • Date: Wed, 7 Aug 1996 04:17:41 -0400
  • Organization: University of Colorado, Boulder
  • Sender: owner-wri-mathgroup at wolfram.com

In article <4thatm$j6e at dragonfly.wolfram.com>,
Jason Welter <welter at texoma.com> wrote:
>I have a list that looks like:
>
>data = {{1,1,a,4,5,6},{2,1,a,2,3,4},{3,1,a,7,8,9},
>               {1,2,b,4,5,6},{2,2,b,2,3,4},{3,2,b,7,8,9},
>               {1,3,c,4,5,6},{2,3,c,2,3,4},{3,3,c,7,8,9}}
>
>and I want to pick out the lists that have a 2 as the second element
>of the list.  I tried something like:
>
>data1 = Select[data,data[[#,2]]==2];
>
>but this doesn't work.  How do I do it?

The argument to the pure function in Select is an individual element of the
list being selected, not an index. Thus, the test you want is #[[2]]==2&.

(Local) In[15]:=
Select[data, #[[2]]==2&]
(Local) Out[15]=
{{1, 2, b, 4, 5, 6}, {2, 2, b, 2, 3, 4}, {3, 2, b, 7, 8, 9}}

It's eve easier to do this using Cases and a pattern:

(Local) In[16]:=
Cases[data, {_,2,__}]
(Local) Out[16]=
{{1, 2, b, 4, 5, 6}, {2, 2, b, 2, 3, 4}, {3, 2, b, 7, 8, 9}}

In my opinion, this code is easier to understand at a glance --
the pattern is quite explicit.

		Dave Wagner
		Principia Consulting
		(303) 786-8371
		dbwagner at princon.com
		http://www.princon.com/princon

==== [MESSAGE SEPARATOR] ====


  • Prev by Date: nonlinear programming with MMA
  • Next by Date: Newby: filing graphics in MMA-WIN
  • Previous by thread: How do I use Select[list,condition]?
  • Next by thread: Re: How do I use Select[list,condition]?