为了账号安全,请及时绑定邮箱和手机立即绑定

将列表转换回字符串 python

将列表转换回字符串 python

大话西游666 2021-08-11 22:12:33
第一个函数能够分隔字符串的每个字母并列出该字母出现的次数。例如:print(rlencode("Hello!"))[('H', 1), ('e', 1), ('l', 2), ('o', 1), ('!', 1)]我怎么得到rldecode(rle):做完全相反的rlencode(s)事情,以便rldecode(rlencode(x)) == x返回Truedef rlencode(s):    """    signature: str -> list(tuple(str, int))    """    string=[]    count=1    for i in range(1,len(s)):        if s[i] == s[i-1]:            count += 1        else:            string.append((s[i-1], count))            count=1        if i == len(s)-1:            string.append((s[i], count))    return stringdef rldecode(rle):    """    #signature: list(tuple(str, int)) -> str    #"""    string=" "    count=1    for i in rle:        if i == rle:            string += i    return string
查看完整描述

3 回答

?
www说

TA贡献1775条经验 获得超8个赞

您可以使用collections.Counter.elements():


from collections import Counter

l = [('H', 1), ('e', 1), ('l', 2), ('o', 1), ('!', 1)]

print(''.join(Counter(dict(l)).elements()))

这输出:


Hello!


查看完整回答
反对 回复 2021-08-11
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

使用join:


b = [('H', 1), ('e', 1), ('l', 2), ('o', 1), ('!', 1)]

''.join([c[0] * c[1] for c in b])

Hello!

您还可以对初始函数使用列表推导式。


查看完整回答
反对 回复 2021-08-11
  • 3 回答
  • 0 关注
  • 193 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号