小ネタ。よく使うけど忘れるのでメモ。
「110011」みたいに0と1で構成されていたら「11」「00」「11」に分割して処理したいときは、itertoolsのgroupbyを使う。
from itertools import groupby s = [0, 0, 2, 2, 1, 1, 3, 0, 5, 5, 1, 1, 4, 0, 0, 1, 1] for key, group in groupby(s): print(key, list(group))
出力
0 [0, 0] 2 [2, 2] 1 [1, 1] 3 [3] 0 [0] 5 [5, 5] 1 [1, 1] 4 [4] 0 [0, 0] 1 [1, 1]