As part of my implementation of cross-validation, I find myself needing to split a list into chunks of roughly equal size.import randomdef chunk(xs, n):    ys = list(xs)    random.shuffle(ys)    ylen = len(ys)    size = int(ylen / n)    chunks = [ys[0+size*i : size*(i+1)] for i in xrange(n)]    leftover = ylen - size*n    edge = size*n    for i in xrange(leftover):            chunks[i%n].append(ys[edge+i])    return chunksThis works as intended>>> chunk(range(10), 3)[[4, 1, 2, 7], [5, 3, 6], [9, 8, 0]]But it seems rather long and boring. Is there a library function that could perform this operation? Are there pythonic improvements that can be made to my code?
Pythonic split list into n random chunks of roughly equal size
python