Вы можете легко группировать группы с помощью itertools.groupby
. Тогда нужно просто покрыть списки целых чисел целыми числами:
from itertools import groupby
l = [1,2,3,'t',2,3,2,'t',1,3,4,'t']
[int("".join(map(str, v))) for k, v in
groupby(l, key=lambda x: x!='t') if k]
# [123, 232, 134]
Полезно понять, что делает группа ie. Если вы возьмете код, который составляет целые числа из оставшихся групп:
[list(v) for k, v in groupby(l, key=lambda x: x!='t') if k]
# [[1, 2, 3], [2, 3, 2], [1, 3, 4]]
Это просто группирует список по тому, равен ли элемент 't'. k
здесь будет либо True
, либо False
. Это отфильтровывает значения False
с помощью if k
.
Остальное - просто соединить числа и сделать целое число:
"".join(map(str, v)))
Хорошая особенность использования itertools заключается в том, что он будет корректно обрабатывать большие входные данные - он работает с вещами по мере их поступления.