Mike Klaas wrote: > On 18-Jan-08, at 1:37 PM, Lars Immisch wrote: >> >> I like cmp, too. I've looked through my code, and I've only used it in >> script-ish circumstances, but here is an example that sorts a list of >> files by modification date: >> >> def cmp_mtime(f, g): >> """Too much for a lambda for my tastes.""" >> return cmp(os.stat(f).st_mtime, os.stat(g).st_mtime) >> >> files = os.listdir('.') >> files.sort(cmp_mtime) > > The use case of sort-function delegating to cmp() of part of an object > is covered by the key= parameter, which is faster and more succinct: > > files = os.listdir('.') > files.sort(key=lambda f: os.stat(f).st_mtime)
You are right. > Grepping though my team's codebase, I see some uses similar to yours > above, but all can be replaced with key=. Personally, I don't see the > attraction of writing sort functions this way: I fell in love with key= > the moment I discovered it. > > The relative frequency is 84 key-based sorts to 9 cmp()-based sorts > (admittedly that is more due to my influence than to a natural > distribution). I know off hand how cmp should look like, but with 'key' I think 'attribute access', even if it isn't. My head is stuck with 2.3, it seems. - Lars _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com