Re: One line sort
Am 15.11.21 um 14:10 schrieb ast: A curiosity: q = lambda x: x and q([i for i in x[1:] if i < x[0]]) + [x[0]] + q([i for i in x[1:] if i >= x[0]]) >>> q([7, 5, 9, 0]) [0, 5, 7, 9] That seems to be a translation of the classic Haskell quicksort example: qsort [] = [] qsort (x:xs) = qsort [a | a <- xs, a < x] ++ [x] ++ qsort [b | b <- xs, b >= x] The Haskell version is a bit clearer IMHO due to the pattern matching, but that results in a 2 liner :) Christian -- https://mail.python.org/mailman/listinfo/python-list
Re: One line sort
On Tue, Nov 16, 2021 at 5:58 AM ast wrote: > > A curiosity: > > q = lambda x: x and q([i for i in x[1:] if i < x[0]]) + [x[0]] + q([i > for i in x[1:] if i >= x[0]]) > > >>> q([7, 5, 9, 0]) > [0, 5, 7, 9] A nicely obfuscated quicksort. Although the "one line" part falls down a bit if it has to get wrapped for the mailing list post. (Horribly inefficient, but it's clear what the intention is.) ChrisA -- https://mail.python.org/mailman/listinfo/python-list
One line sort
A curiosity: q = lambda x: x and q([i for i in x[1:] if i < x[0]]) + [x[0]] + q([i for i in x[1:] if i >= x[0]]) >>> q([7, 5, 9, 0]) [0, 5, 7, 9] -- https://mail.python.org/mailman/listinfo/python-list