作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
标题,例如我想把'A3G3A'变成'AAAGGGA'。到目前为止我有这个:
if any(i.isdigit() for i in string):
for i in range(0, len(string)):
if string[i].isdigit():
(i am lost after this)
最佳答案
这是一个简单的方法:
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
关于Python - 如何将字符串中的字符乘以字符后的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47246668/
我是一名优秀的程序员,十分优秀!