[Tim Peters] > > That said, since we're having a fire sale on optional sort arguments in > 2.4, > > I wouldn't oppose an optional Boolean argument you could explicit set to > > have x.sort() return x. For example, [Michael Chermside] > I just wanted to call everyone's attention to the fact that Tim may > (again... <sigh>) have come up with a decent idea. > > Seriously... Guido (and apparently Tim and I too) insist that aList.sort() > must return None since it mutates the list. Meanwhile, Kevin, Barry, and > perhaps others want to be able to write > aList.sort().reverse().chainMoreHere(). Are you proposing something like: print mylist.sort(inplace=False) # prints a new, sorted list while # leaving the original list intact which would be implemented something like this: def inlinesort(alist, *args, **kwds): newref = alist[:] newref.sort(*args, **kwds) return newref If that is what you're after, I think it is a good idea. It avoids the perils of mutating methods returning self. It is explicit and pleasing to write: for elem in mylist.sort(inplace=False): . . . It is extra nice in a list comprehension: peckingorder = [d.name for d in duck.sort(key=seniority, inplace=False)] Instead of "inplace=False", an alternative is "inline=True". Raymond Hettinger
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