On Sat, Aug 01, 2020 at 08:54:16PM +0300, Ram Rachum wrote:

> When writing some code now, I needed to produce a shuffled version of
> `range(10, 10 ** 5)`.
> 
> This is one way to do it:
> 
> shuffled_numbers = list(range(10, 10 ** 5))
> random.shuffle(shuffled_numbers)
> 
> 
> I don't like it because (1) it's too imperative and (2) I'm calling the
> list "shuffled" even before it's shuffled.

This is easily solved with a three-line helper:

    def shuffled(iterable):
        L = list(iterable)
        random.shuffle(L)
        return L

I have implemented this probably a half a dozen times, and I expect 
others have too. I agree with Alex that this would make a nice addition 
to the random module.


-- 
Steven
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/47JMNMYPEETQFKPDK4OVLGM2IXCQ4GIA/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to