【发布时间】:2018-07-21 02:04:22
【问题描述】:
我有一个如下所示的数字字符串。
s = "1123433364433"
我想得到这样的拆分连续相同值的结果列表。 您无法更改原始每个数字的位置。
结果 = [“11”、“2”、“3”、“4”、“333”、“6”、“44”、“33”]
什么是最简单的方法?
【问题讨论】:
标签: python split digits continuous
我有一个如下所示的数字字符串。
s = "1123433364433"
我想得到这样的拆分连续相同值的结果列表。 您无法更改原始每个数字的位置。
结果 = [“11”、“2”、“3”、“4”、“333”、“6”、“44”、“33”]
什么是最简单的方法?
【问题讨论】:
标签: python split digits continuous
使用itertools.groupby:
from itertools import groupby
s = "1123433364433"
print([''.join(i) for _, i in groupby(s)])
这个输出:
['11', '2', '3', '4', '333', '6', '44', '33']
【讨论】:
您也可以为此使用模块 re:
import re
s = "1123433364433"
print([v[0] for v in re.finditer(r'(.)\1*', s)])
输出:
['11', '2', '3', '4', '333', '6', '44', '33']
【讨论】: