On Sat, Oct 18, 2003 at 10:01:52PM +0200, Alex Martelli wrote: > > > >>> (lambda x:(x, x.sort())[0])(list(a)) > > This one can, because the lambda lets you give a temporary name x > to the otherwise-unnamed list returned by D.keys(). It can be made a > _little_ better, too, I think: > > >>> D=dict.fromkeys('ciao') > >>> D.keys() > ['i', 'a', 'c', 'o'] > >>> (lambda x: x.sort() or x)(D.keys()) > ['a', 'c', 'i', 'o'] > > and if you want it reversed after sorting, > > >>> (lambda x: x.sort() or x.reverse() or x)(D.keys()) > ['o', 'i', 'c', 'a'] Good, so this way the difference between copied and not copied is minimized: >>> (lambda x: x.sort() or x)(a) And: >>> (lambda x: x.sort() or x)(list(a)) Nice, this lambda hack is a cleaner, more specific, and simple deviation of the chain() function. Perhaps it could be made more understandable like: >>> sorted = lambda x: x.sort() or x >>> sorted(list(a)) ['a', 'c', 'i', 'o'] And: >>> sorted(a) ['a', 'c', 'i', 'o'] The only problem is that you assume .sort() always returns a non True value. If some time in the future .sort() would return self, your code would break and then the rightful usage would be: >>> a = ['c', 'i', 'a', 'o'] >>> list(a).sort() ['a', 'c', 'i', 'o'] >>> a ['c', 'i', 'a', 'o'] And: >>> a.sort() ['a', 'c', 'i', 'o'] >>> a ['a', 'c', 'i', 'o'] I didn't see the begining of this discussion, but it looks to me that sort() returning self is much better than adding a .copysort(). > BTW, welcome to python-dev! Thanks! -- Dan Aloni da-x at gmx.net
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