Re: extracting elements from a list of lists
- To: mathgroup at smc.vnet.net
- Subject: [mg5827] Re: [mg5811] extracting elements from a list of lists
- From: "w.meeussen" <w.meeussen at solair4b.eunet.be>
- Date: Thu, 23 Jan 1997 03:19:30 -0500
- Sender: owner-wri-mathgroup at wolfram.com
At 00:44 22-01-97 -0500, you wrote:
>Hi,
>
>Suppose I have lists within a list, like:
>
> myList = {{a,b}, {c,d}}
>
>and I want to extract some element (let's say the d).
>I can request:
>
> myList[[2,2]].
>
>Now suppose what I have the index of the element as
>the list {2,2}. Then I can do:
>
> Fold[Part, myList, {2,2}]
>
>Is it correct to suppose that it will first return the
>2nd sublist, and then extract the second element from it?
>How efficient is it? This may be a crucial point
>if I have long lists, I think. Then isn't there a
>better way of doing this?
hi Olivier,
your guess is ok :
In[3]:=
Fold[Part, myList, {2,2}]
Out[3]=
d
as you can see by checking the steps:
In[4]:=
FoldList[Part, myList, {2,2}]
Out[4]=
{{{a,b},{c,d}}
,{c,d}
,d}
but The Book as good documentation on myList [[2,2]]:
In[5]:=
Part[myList,2,2]
Out[5]=
d
your general case :
In[18]:=
target={1,3,2}
Out[18]=
{1,3,2}
In[19]:=
longer=
{
{{a,b,c},{d,e,f},{g,h,i}},{{j,k,l},{m,n,o},{p,q,r}}
}
Out[19]=
{{{a,b,c},{d,e,f},{g,h,i}},{{j,k,l},{m,n,o},{p,q,r}}}
In[20]:=
Part[longer,Sequence@@target]
Out[20]=
h
the trick is in Sequence[]
Dr. Wouter L. J. MEEUSSEN
w.meeussen at solair4b.eunet.be