pythonでリストを一定の長さに分割する


前にやってた気がするんだけど、とっさにでてこなかったのでググって調べてた。
How do you split a list into evenly sized chunks in Python? - Stack Overflow

# coding=utf-8

def chunks(l, n):
    """ Yield successive n-sized chunks from l.
    """
    for i in xrange(0, len(l), n):
        yield l[i:i + n]


for e in chunks(range(1, 30), 10):
    print e

結果

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[21, 22, 23, 24, 25, 26, 27, 28, 29]