Re: I don't know how to ....
- To: mathgroup at smc.vnet.net
- Subject: [mg2460] Re: I don't know how to ....
- From: vince at vince.math.uconn.edu (Vince Giambalvo)
- Date: Sun, 12 Nov 1995 22:26:22 -0500
- Organization: University of Connecticut
In article <47pm9c$fbk at ralph.vnet.net> pehowland at taz.dra.hmg.gb (Paul E Howland) writes:
In article <471hgv$gb3 at ralph.vnet.net>, bientin at cli.di.unipi.it (Paolo Bientinesi) writes:
|here's my problem:
|I need a function that takea as input a list of pairs;
|the first element of every pair is a list, the second one is an integer;
|I want the function to calculate thhe
|biggest integer and to give as output the corresponding list.
Assuming your list is like:
data = {{{1,2,3},0}, {{4,5,6},5}, {{7,8,9},3}}
then the following will work:
In[1]:= Part[data, Position[
Map[#[[2]]&, data],
Max[Map[#[[2]]&, data]]
][[1,1]], 1]
Out[1]= {4, 5, 6}
Hope this helps,
I run in to lots of problems with solutions of this type, i.e, some
function of the input data is used more than once, in this case
Map[#[[2]]&,data]. I usually use a (temporary) variable to hold the
result, because I didn't think Mathematica would be smart enough to
save it and avoid recomputing. This usually involves setting up a
Module or Block, which also has overhead. Are there any guidelines for
doing this efficiently? Obviously the more complicated the function
the more expensive the recalculation, if it occurs.
Vince