百折不撓

データ系の新米エンジニアとして戦闘中。

リストを要素がN個の小分けリストにしたい

 自分の備忘録として、記事に残す。

list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

のようなリストがあった時に、要素がN個のリストに小分けしたい。言うなれば、[list1[0:N], list1[N:2N], list1[2N:3N],,,,,]的なリストが欲しい。
 そういう時は、以下のようにすると良い。

list1_divided = []
for i in range(0, len(list1), N):
    list1_divided.append(list1[i:i + N])

 N=3ならば、以下のようなリストを得る。

[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]

 for文回す時に、N個飛ばしでとってくれば、0, N, 2N(=N+N), 3N(N+N+N),,,,,みたいにiを取ってきてくれるから、そのiに+Nしてやれば、
list1[i:i + N]でN個の要素ずつの小分けリストにしてくれるねって話だったか。
 うーん、精進。

参考:
リストをN分割する - Python学習講座
※正直、リンク先のまんまの話をしています。勉強になりました、有難うございます。