On Mon, 2003-10-20 at 22:43, Raymond Hettinger wrote: > Let's see what the use cases look like under the various proposals: > > [1] todo = [t for t in tasks.copysort() if due_today(t)] > [2] todo = [t for t in list.sorted(tasks) if due_today(t)] > [3] todo = [t for t in list(tasks, sorted=True) if due_today(t)] Well, #3 is (I hope) a non-starter, given the need for the extra sort keyword arguments. And the instance method is less capable - it can't sort a non-list iterable (except via list(xxx).copysort()). So I would definitely prefer #2, especially as I would tend to put: sort = list.sorted at the top of my modules where needed. Then I'd have: todo = [t for t in sort(tasks) if due_today(t)] genhistory(date, sort(events, key=incidenttime)) for f in sort(os.listdir()): . . . which to me looks enough like pseudocode that I'm happy. This might seem like an argument for having sort() as a builtin, but I think it's still better as a list constructor. Adding "sort = list.sorted" to the modules that need it is a small price to pay in boilerplate for the big win of not cluttering the builtin namespace. Mark Russell
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4