将列表转回字符串python - python

第一个功能能够分隔字符串的每个字母并列出该字母出现的次数。例如:

print(rlencode("Hello!"))
[('H', 1), ('e', 1), ('l', 2), ('o', 1), ('!', 1)]

如何获取rldecode(rle):执行与rlencode(s)完全相反的操作,以便rldecode(rlencode(x)) == x返回True

def 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 string



def rldecode(rle):
    """
    #signature: list(tuple(str, int)) -> str
    #"""
    string=" "
    count=1
    for i in rle:
        if i == rle:
            string += i
    return string

python参考方案

您可以使用以下事实:可以将字符串乘以数字以重复该字符串,并使用`''.join()将列表中的元素组合在一起。

为了显示字符串乘法的效果,我将"a"乘以5

"a"*5 #'aaaaa'

理解中使用它会给你

str = [char[0]*char[1] for char in rle] #['H', 'e', 'll', 'o', '!']

然后添加''.join(),您将得到答案。

l = [('H', 1), ('e', 1), ('l', 2), ('o', 1), ('!', 1)]
str = ''.join(char[0]*char[1] for char in rle) #'Hello!'

所以你的功能是

def rldecode(rle):
    """
    signature: list(tuple(str, int)) -> str
    """
    return ''.join(char[0]*char[1] for char in rle) 

另外,如果您想使rlencode更加整洁,可以使用enumerate帮助您将其保留在字符串中的位置并检查是否要打一个新字符,从而将其简化一些或字符串的结尾。您只需要在每个循环上增加计数器。

def rlencode(s):

    output = []
    count = 0

    for i, char in enumerate(s):

        count += 1

        if (i == (len(s)-1)) or (char != s[i+1]):
            output.append((char, count))
            count = 0

    return output

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

查找字符串中的行数 - python

我正在创建一个python电影播放器​​/制作器,我想在多行字符串中找到行数。我想知道是否有任何内置函数或可以编写代码的函数来做到这一点:x = """ line1 line2 """ getLines(x) python大神给出的解决方案 如果换行符是'\n',则nlines …

字符串文字中的正斜杠表现异常 - python

为什么S1和S2在撇号位置方面表现不同?S1="1/282/03/10" S2="4/107/03/10" R1="".join({"N\'" ,S1,"\'" }) R2="".join({"N\'…

Python:如何根据另一列元素明智地查找一列中的空单元格计数? - python

df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice','Jane', 'Alice','Bob', 'Alice'], 'income…