Fastest way to max() list
David Di Biase
dave.dibiase at gmail.com
Fri Sep 26 16:22:42 CEST 2008
Yeah I hear you on point A. but this the specification I was given, so I
have to follow it unfortunately. I've also been restricted and not allowed
to use any other packages. I was using NumPy earlier (should have mentioned
that) but I was wondering if there was a simpler way. Is NumPy technically
even faster than just iterating and modifying the list directly?
Also if I'm creating an array then making it, why not just do a temporary
sort and capture the first and last values? Is this method you've provided
supposed to be faster?
On Fri, Sep 26, 2008 at 12:42 AM, Chris Rebert <clp at rebertia.com> wrote:
> On Thu, Sep 25, 2008 at 8:57 PM, David Di Biase <dave.dibiase at gmail.com>
> > I have a list with about 1000-1500 sub-lists which look like so:
> > list[-0.28817955213290786, 3.6693631467403929, 'H', 31.31225233035784]]
> > The first and second values are Angstrom units specifying the location of
> > particle. What I'd like to do is determine the distance between the
> > and largest value in the arrays first position 0. I tried reading the
> > for this but I don't see how it applies key or any of those other
> > to the function. I could easily write a sort to do this and capture the
> > first and last spots, but why do that when I can use max and min (if I
> > actually do that...).
> A. You should probably be using objects rather than arrays to
> represent your datapoints, so that they're more structured and it's
> more apparent what the values mean.
> B. Assuming by "distance" you meant "difference" and/or that the
> distance is only in 1 dimension:
> from operator import itemgetter
> firsts = map(itemgetter(0), main_list)
> distance = max(firsts) - min(firsts)
> > So you wonderful Python gods, lay some knowledge on me. please? lol...
> > while I'm at it, is there a way to modify an entire list without having
> > produce a whole new one? For example now say I want to modify list and
> > multiply it by some value. From what I understand previous version of
> > allowed lists to be multiplied like matrices...now apparently it just
> > replicates the list. :-/ shucks...
> You just have to apply the transform to each list element individually
> (also, you might consider using NumPy [http://numpy.scipy.org/] if
> you're doing a lot of matrix manipulation):
> for lst in main_list:
> lst *= some_value
> > The first question would be useful to know, but the second question I do
> > quite a bit of and the "best practice" would be really great to know!
> > Thanks in advanced!
> > --
> > http://mail.python.org/mailman/listinfo/python-list
> Follow the path of the Iguana...
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-list