On 07.09.2016 02:49, Chris Kaynor wrote:
I'll weigh in and say that I've had a few cases where I've wanted a
shuffled function, but not many. The vast majority are interactive
uses, where I want to get a sampling of data, and in those cases I'm
normally just printing the output (often, by letting the REPL handle it).
I'm fairly sure I've never wanted a shuffled in the actual code, and
shuffle is almost always what I want (or just pulling items at random).
Probably the most common case is to produce a list of random numbers
in a (small) range. The current code looks roughly like:
import random
items = list(range(10))
random.shuffle(items)
items # this is interactive, so this prints it for me
As this does not come up often, I almost invariably write the
following first:
import random
random.shuffle(range(10))
Then get no output and write the first form. It is not a major
difference, and only comes up maybe a few times a year at most for me.
That sounds extremely familiar. I would say the interactive session is
the clear use-case here. But don't ask me why I need a shuffled list of
somethings (probably for some highly vicious and immoral reasons ;-) ).
@David
Your idea of a PyPI package could almost work. However, in an
interactive python console, I expect as much batteries included as
possible to make it as quick as possible. And considering how simple
such wrapper would be, it almost does not warrant the download of a
third-party package.
@Tim
Of course it's easy to write a wrapper function. But from what I gather
here, this is not the point. In interactive sessions, I find it highly
annoying when I need to define my own functions. Especially because I
need to do it again in a new python session.
Somebody provided a one-line hack using "sorted" to emulate "shuffled".
The statement basically is: shuffling is a special kind of sorting. So,
I would expect the interface to work the same. That at least suffices
for me to understand Arek's point of view.
I would even go so far as to say:
shuffled(my_list) # returns a new shuffled list
my_list.shuffle() # shuffles in-place
Allowing to plug-in the RNG, when needed.
Sven
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/