Schwartzian transform for tuple in list
clp at rebertia.com
Wed Sep 24 23:19:03 CEST 2008
On Wed, Sep 24, 2008 at 2:02 PM, David Di Biase <dave.dibiase at gmail.com> wrote:
> I have a rather large list structure with tuples contained in them (it's
> part of a specification I received) looks like so:
> The list can range from about 800-1500 tuples in size and I'm currently
> sorting it with this:
> a_list.sort(lambda a, b: cmp(b, a))
You'd probably be better off using the 'key' keyword argument to
.sort(), which is made for the Schwartzian Transform:
a_list.sort(key=lambda x: x)
This sorts the list items by the value produced by the key function
for each item. It's also (IIRC) faster than using a comparison
function like you're currently doing.
> I'm actually sorting it by the last value in the tuple (d2). I have been
> researching more efficient sorting algorithms and came across Schwartzian
> transform via these links:
> I get what's happening (sorta...errr...lol) but I'm not sure if it is more
> efficient in my scenario, if it is then I have no idea how to implement it
> properly :-/
> Would be great if a true expert would offer a suggestion for me...
Follow the path of the Iguana...
More information about the Python-list