python2でリストをn個ずつのサブリストに分割する
codeevalのsudokuやったときに調べたのでメモ。
結局使わなかったけど。
Python2でCodeEvalのSUDOKU - brainstorm
# coding=utf-8 size = 4 digits = [1, 4, 2, 3, 2, 3, 1, 4, 4, 2, 3, 1, 3, 1, 4, 2] # リスト内包表記 print [digits[x:x + size] for x in xrange(0, len(digits), size)] # [[1, 4, 2, 3], [2, 3, 1, 4], [4, 2, 3, 1], [3, 1, 4, 2]] # ジェネレータ def chunks(l, n): for i in xrange(0, len(l), n): yield l[i:i + n] print list(chunks(digits, size)) # [[1, 4, 2, 3], [2, 3, 1, 4], [4, 2, 3, 1], [3, 1, 4, 2]] # more-itertools from more_itertools import chunked print list(chunked(digits, size)) # [[1, 4, 2, 3], [2, 3, 1, 4], [4, 2, 3, 1], [3, 1, 4, 2]]