我是游程编码的新手,需要帮助。我已经获得了一系列整数的行程字符串,后跟包含字母/字符的字符。
例如,我有一个字符串:
1-4c8k2)
我需要将其转换为:
-cccckkkkkkkk))
我所做的是将游程长度字符串转换为元组列表:
[('1','-'),('4','c'),('8','k'),('2','c')]
并尝试创建一个将其转换为字符串的函数但是我得到了一个 TypeError:不能将序列乘以'str'类型的非int。
def decode(lst):
q = ''
for count, character in lst:
q += count * character
return q
我正在尝试一种提高空间复杂度的方法,而不是创建一个新的元组列表等等,试图解决这个TypeError。
答案 0 :(得分:5)
我怀疑发生的事情是你忘记将计数转换为ints
:
>>> 3 * 'a'
'aaa'
>>> '3' * 'a'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'str'
>>> int('3') * 'a'
'aaa'
答案 1 :(得分:0)
你试着通过这种方式:
lst = [('1','-'),('4','c'),('8','k'),('2','c')]
def decode(lst):
q = ''
for count, character in lst:
q += int(count) * character
return q
print(decode(lst))
输出:
-cccckkkkkkkkcc
检查此代码here