工作是解压缩字符串。 例如:
if a string is 'a3b4c2' then decompress it as 'aaabbbbcc'.
我之前尝试的代码是
list1 = [i for i in a]
listNum = list(map(int,list(filter(lambda x:x.isdigit(),list1))))
listChar = list(filter(lambda x: not x.isdigit(),list1))
b = ''
for i in range(len(listNum)):
b += listChar[i]*listNum[i]
print(b)
我认为这是一个相当简单的问题,但我的代码似乎很笨拙,有没有其他方法可以做到这一点
您可以将列表理解用于单行解决方案:
输出:
*运算符可用于将整数与字符相乘
调用join方法将子字符串列表连接到完整字符串
正则表达式将每个字母与以下数字(容纳多位数数字)匹配,并分组返回:
然后你只需要对它们进行迭代
…并使它们成倍增长
…只需在生成器表达式中执行此操作
…和
''.join
将所有生成的小字符串放在一起为了好玩,这里有一个版本,它甚至允许不带数字的独立字母:
另一种方式,
zip
+splicing
相关问题 更多 >
编程相关推荐