Re: Conditional list indexing
- To: mathgroup at smc.vnet.net
- Subject: [mg95921] Re: Conditional list indexing
- From: Steven Siew <stevensiew2 at gmail.com>
- Date: Thu, 29 Jan 2009 06:01:07 -0500 (EST)
- References: <glpgd4$lha$1@smc.vnet.net>
In[1]:=
a=Table[Prime[i],{i,10}]
Out[1]=
{2,3,5,7,11,13,17,19,23,29}
In[2]:=
SelectIndex[list_List,func_]:=Module[{k,result={}},
For[k=1,k <= Length[list],k++,
If[ func[ list[[k]] ] ,
result=Append[result,k] ];
];
result
]
In[3]:=
SelectIndex[a,#>15&]
Out[3]=
{7,8,9,10}
A much better solution would be as follows
In[4]:=
SelectIndex2[list_List,func_]:=Flatten@Position[Map[func,list],True]
In[5]:=
SelectIndex2[a,#>15&]
Out[5]=
{7,8,9,10}