首页 > 解决方案 > 使用for循环删除重复项时如何保留空格?

问题描述

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

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'

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

标签: pythonstring

解决方案


还有一种更短的方法可以做到这一点:

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

并且您不需要创建一个新变量,例如empty.


推荐阅读