可以使用正则表达式和列表解析来实现该功能。具体方法如下:
import re
def split_and_retain_pos(s): groups = re.findall("[A-Z][^A-Z]*", s) output = [] for g in groups: output.extend([c for c in g]) return output
s = "AAbbCDdEEffG" print(split_and_retain_pos(s)) # ['A', 'A', 'b', 'b', 'C', 'D', 'd', 'E', 'E', 'f', 'f', 'G']