我试图从左到右计算(list/string/whatevery(中相等相邻元素的数量。有什么帮助吗?
例如(
1113322 would be [3,2,2]
3334555 would be [3,1,3]
输入和输出的形式可以是任何形式(列表、字符串..(提前谢谢。
使用itertools.groupby
:
from itertools import groupby
sizes = lambda d: [len(list(g)) for _, g in groupby(d)]
sizes("1113322") # str, list, tuple, lazy iterator, whatever
# [3, 2, 2]
sizes("3334555")
# [3, 1, 3]