使用for循环删除重复项时如何保留空格?

时间:2019-05-20 05:32:08

标签: python string

所以我的问题的基础是删除字符串中所有重复的字符。通过执行以下操作,我成功地做到了:

def remove_duplicates(strng):
    """
    >>> remove_duplicates("The quick brown fox jumps over the lazy dog")
    'The quick brown fx jmps v t lazy dg'
    """


    empty = ""  
    for ch in strng:
        if ch not in empty:
            empty = empty + ch
    return empty

我从中收到的输出是:

Expected:
    'The quick brown fx jmps v t lazy dg'
Got:
    'The quickbrownfxjmpsvtlazydg'

它删除了我不需要的所有空格。感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

您实际上与解决方案非常接近,只需将代码更改为:

def remove_duplicates(strng):
    empty = ""  
    for ch in strng:
        if ch not in empty or ch == " ":
            empty = empty + ch
    return empty

答案 1 :(得分:3)

还有一种更短的方法:

def remove_duplicates(strng):
    return ''.join([v for i,v in enumerate(strng) if v == ' ' or strng.index(v)== i])

,您无需创建新变量,例如empty