如何删除字符串中的重复字符?

Pau*_*sin 3 python

我遇到了这个问题,但我根本无法解决它。我必须从字符串中删除重复的字符。

phrase = "oo rarato roeroeu aa rouroupa dodo rerei dde romroma"
Run Code Online (Sandbox Code Playgroud)

输出应该是:“O rato roeu a roupa do rei de roma”

我尝试过类似的事情:

def remove_duplicates(value):
    var=""
    for i in value:
        if i in value:
            if i in var:
                pass
            else:
                var=var+i
    return var

print(remove_duplicates(entrada))
Run Code Online (Sandbox Code Playgroud)

但它还没有到...

有什么指示可以指导我吗?

vai*_*zki 6

从您的示例来看,您似乎想要删除重复的字符序列,而不是整个字符串中的重复字符。这就是我在这里要解决的问题。

您可以使用正则表达式..不确定它的效率有多低,但它确实有效。

>>> import re
>>> phrase = str("oo rarato roeroeu aa rouroupa dodo rerei dde romroma")
>>> re.sub(r'(.+?)\1+', r'\1', phrase)
'o rato roeu a roupa do rei de roma'
Run Code Online (Sandbox Code Playgroud)

这种替换如何沿着字符串进行:

oo -> o
" " -> " "
rara -> ra
to -> to
" "-> " "
roeroe -> roe
Run Code Online (Sandbox Code Playgroud)

ETC..

编辑:适用于不应修改的其他示例字符串:

>>> phrase = str("Barbara Bebe com Bernardo")
>>> re.sub(r'(.+?)\1+', r'\1', phrase)
'Barbara Bebe com Bernardo'
Run Code Online (Sandbox Code Playgroud)