I have read the answers to the Python: Slicing a list into n nearly-equal-length partitions question.
This is the accepted answer:
def partition(lst, n):
division = len(lst) / float(n)
return [ lst[int(round(division * i)): int(round(division * (i + 1)))] for i in xrange(n) ]
I am wondering, how does one modify these solutions in order to randomly assign items to a partition as opposed to incremental assignment.
Thanks, S :-)
Call
random.shuffle()
on the list before partitioning it.shuffle input list.
Complete 2018 solution (pytyon 3.6):
Beware! this may mutate your original list
First you randomize the list and then you split it in n nearly equal parts.