用条纹数替换字符串

use*_*879 4 python string list

假设我有一个以下形式的字符串:

"000000111100011100001011000000001111"
Run Code Online (Sandbox Code Playgroud)

我想创建一个包含1条纹长度的列表:

[4, 3, 1, 2, 4]
Run Code Online (Sandbox Code Playgroud)

这有一个很好的单线程吗?

Jon*_*nts 15

如果你不介意from itertools import groupby......

>>> from itertools import groupby
>>> [len(list(g)) for k, g in groupby(s) if k == '1']
[4, 3, 1, 2, 4]
Run Code Online (Sandbox Code Playgroud)