这是一种简单的方法:
string = 'A3G3A'
expanded = ''
for character in string:
if character.isdigit():
expanded += expanded[-1] * (int(character) - 1)
else:
expanded += character
print(expanded)
输出:AAAGGGA
它假定有效输入.它的局限性在于重复因子必须是单个数字,例如2 – 9.如果我们想要重复因子大于9,我们必须对字符串进行稍微解析:
from itertools import groupby
groups = groupby('DA10G3ABC', str.isdigit)
expanded = []
for is_numeric, characters in groups:
if is_numeric:
expanded.append(expanded[-1] * (int(''.join(characters)) - 1))
else:
expanded.extend(characters)
print(''.join(expanded))
输出:DAAAAAAAAAAGGGABC