2024-09-29 22:30:25 发布
网友
我有以下字符串:
string = 'TAA15=ATT'
我列了一个清单:
string_list = list(string) print(string_list)
结果是:
['T', 'A', 'A', '1', '5','=', 'A', 'T', 'T']
我需要检测后续的数字并将它们合并为一个数字,如下所示:
['T', 'A', 'A', '15','=', 'A', 'T', 'T']
我也很关心表演。这个字符串转换要进行上千次。你知道吗
谢谢你提供的任何提示。你知道吗
使用itertools.groupby
itertools.groupby
例如:
from itertools import groupby string = 'TAA15=ATT' result = [] for k, v in groupby(string, str.isdigit): if k: result.append("".join(v)) else: result.extend(v) print(result)
输出:
['T', 'A', 'A', '15', '=', 'A', 'T', 'T']
这里有一个非常简短的解决方案
import re def digitsMerger(source): return re.findall(r'\d+|.', source)
digitsMerger('TAA15=ATT') ['T', 'A', 'A', '15', '=', 'A', 'T', 'T']
另一个regexp:
import re s = 'TAA15=ATT' pattern = r'\d+|\D' m = re.findall(pattern, s) print(m)
使用
itertools.groupby
例如:
输出:
这里有一个非常简短的解决方案
另一个regexp:
相关问题 更多 >
编程相关推荐