Используя groupby
, вы можете сделать:
from itertools import groupby
a= [0,0,0,1,1,1,3,3,3]
b= ['a','b','c','d','e','f','g','h','i']
iter_b = iter(b)
output = [[next(iter_b) for _ in group] for key, group in groupby(a)]
print(output)
# [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]
groupby
, чтобы получить последовательные группы идентичных значений a
.Для каждой группы мы создаем список, содержащий столько следующих элементов b
, сколько есть значений в группе.