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) 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). -Mike _______________________________________________ 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