例如,我正在尝试创建一个函数,该函数将采用“压缩”字符串
'a12b3c'
并返回它的“扩展”形式,在这个例子中是
'aaaaaaaaaaaabbbc'
每个字符应该重复与后面的数字一样多的次数,或者如果字符后面没有数字则只重复一次。
如果“压缩”字符串中的数字值只是个位数,我已经能够创建一个函数来执行此操作,因此我的尝试适用于像这样的字符串
'a3b2c6'
但我似乎无法找到一种方法来考虑数字值超过一位数的情况。
最佳答案
使用正则表达式:
>>> import re
>>> compressed = "a12b3c"
>>> expanded = ""
>>> for char, count in re.findall(r'(\w)(\d+)?', compressed):
... count = int(count or 1)
... expanded += char*count
...
>>> expanded
'aaaaaaaaaaaabbbc'
关于python - Python 中相当基本的字符串扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35003123/