Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何按数字字符串的值拆分数字字符串?_Python_Split_Digits_Continuous - Fatal编程技术网

Python 如何按数字字符串的值拆分数字字符串?

Python 如何按数字字符串的值拆分数字字符串?,python,split,digits,continuous,Python,Split,Digits,Continuous,我有一个数字字符串,如下所示 s=“1123433364433” 我想得到这样的拆分连续相同值的结果列表。 您不能更改每个数字的原始位置 结果=[“11”、“2”、“3”、“4”、“333”、“6”、“44”、“33”] 最简单的方法是什么?使用itertools.groupby: from itertools import groupby s = "1123433364433" print([''.join(i) for _, i in groupby(s)]) 这将产生: ['11', '

我有一个数字字符串,如下所示

s=“1123433364433”

我想得到这样的拆分连续相同值的结果列表。 您不能更改每个数字的原始位置

结果=[“11”、“2”、“3”、“4”、“333”、“6”、“44”、“33”]


最简单的方法是什么?

使用
itertools.groupby

from itertools import groupby
s = "1123433364433"
print([''.join(i) for _, i in groupby(s)])
这将产生:

['11', '2', '3', '4', '333', '6', '44', '33']
['11', '2', '3', '4', '333', '6', '44', '33']

使用
itertools.groupby

from itertools import groupby
s = "1123433364433"
print([''.join(i) for _, i in groupby(s)])
这将产生:

['11', '2', '3', '4', '333', '6', '44', '33']
['11', '2', '3', '4', '333', '6', '44', '33']

您也可以使用模块
re

import re
s = "1123433364433"
print([v[0] for v in re.finditer(r'(.)\1*', s)])
产出:


您也可以使用模块
re

import re
s = "1123433364433"
print([v[0] for v in re.finditer(r'(.)\1*', s)])
产出: