Fastest way to max() list

David Di Biase dave.dibiase at gmail.com
Fri Sep 26 16:22:42 CEST 2008


Hi Chris,

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?

Dave

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>
> wrote:
> > 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
> a
> > particle. What I'd like to do is determine the distance between the
> smallest
> > and largest value in the arrays first position 0. I tried reading the
> manual
> > for this but I don't see how it applies key or any of those other
> commands
> > 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
> can
> > 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
> to
> > produce a whole new one? For example now say I want to modify list[0] and
> > multiply it by some value. From what I understand previous version of
> Python
> > 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[0] *= some_value
>
> Regards,
> Chris
>
> >
> > 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...
> http://rebertia.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20080926/046c2cb6/attachment.html>


More information about the Python-list mailing list