将元组列表转换为字符串

时间:2017-10-10 01:38:00

标签: python python-3.x tuples

我是游程编码的新手,需要帮助。我已经获得了一系列整数的行程字符串,后跟包含字母/字符的字符。

例如,我有一个字符串:

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。

2 个答案:

答案 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