On Wed, Sep 24, 2008 at 2:02 PM, David Di Biase <[EMAIL PROTECTED]> wrote: > Hi, > > I have a rather large list structure with tuples contained in them (it's > part of a specification I received) looks like so: > [(x1,y1,r1,d1),(x2,y2,r2,d2)...] > > 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[3], a[3]))
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[3]) 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. Regards, Chris > > 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: > > http://www.biais.org/blog/index.php/2007/01/28/23-python-sorting-efficiency > http://dev.fyicenter.com/Interview-Questions/Python/Can_you_do_a_Schwartzian_Transform_in_Python_.html > > 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... > > Thanks! > > David > > -- > http://mail.python.org/mailman/listinfo/python-list > -- Follow the path of the Iguana... http://rebertia.com -- http://mail.python.org/mailman/listinfo/python-list