在Python中删除重复项

在Python中删除重复项,python,Python,到目前为止我的节目 def RemoveDuplicates(text): result=[] used=set() for char in text: if char not in used: used.add(char) result.append(char) return ''.join(result) text=input('Enter some text: ') print(join(re

到目前为止我的节目

def RemoveDuplicates(text):
    result=[]
    used=set()
    for char in text:
        if char not in used:
            used.add(char)
            result.append(char)
    return ''.join(result)

text=input('Enter some text: ')
print(join(result))
我是Python的初学者,所以这对我来说是一个相当困难的任务。我知道这不符合逻辑,但我在哪里犯了错误?

这里有几点:

  • 您定义了函数
    RemoveDuplicates
    ,但从未实际调用它

  • 您可以使用
    set()
    ,但随后手动检查重复项。根据定义,集合将自动消除重复项

  • 你还没有告诉我们你到底想完成什么。这样做,我们就能帮助你更多

  • 您从未实际调用过
    RemoveDuplicates()
    函数

    替换:

    text=input('Enter some text: ')
    print(join(result))
    
    与:


    虽然我不是专家,但我觉得你的功能还行。我认为问题在于你实际上并没有把它叫到任何地方。试着这样称呼它:
    print(RemoveDuplicates(text))

    除了其他答案之外:如果您使用的是Python2,您需要使用
    raw\u input
    而不是
    input

    一个小问题是您忘记调用函数了! 此外,如果您使用的是Python2.x,则需要使用
    raw\u input
    收集用户输入

    两个小补丁,您的代码运行良好:

    def RemoveDuplicates(text):
        result=[]
        used=set()
        for char in text:
            if char not in used:
                used.add(char)
                result.append(char)
        return ''.join(result)
    
    text = raw_input('Enter some text: ')
    print(RemoveDuplicates(text))
    

    在示例代码中,您似乎从未调用RemovedUpplicates。好吧,Python没有任何魔力。你不能写随机的东西,希望它能工作。虽然由于他试图从字符串中删除重复的字符,set()不能维护排序顺序。我希望程序要求用户输入一些文本。输出应为删除重复项的文本。输入的文本:“Stackoverflow”,输出:Stackoverflow我很确定
    集合
    正在被手动使用,因为有必要保留原始文本的顺序。我认为
    如果字符未被使用:
    测试仍然是多余的,这正是@jwd试图做到的。@Marius:,执行
    used.add(char)
    ,不需要测试,但
    结果仍需要测试。append(char)
    。起初我有点误解。@user1248367:它甚至可以写在一行中,但性能更差。这个函数看起来不错。哦,有很多方法可以把它写得更短——实际上是一两行。但这是家庭作业,你的东西很有用,所以我会把它交上来。:-)原始输入是python 2。Python3.x将其重命名为
    input
    def RemoveDuplicates(text):
        result=[]
        used=set()
        for char in text:
            if char not in used:
                used.add(char)
                result.append(char)
        return ''.join(result)
    
    text = raw_input('Enter some text: ')
    print(RemoveDuplicates(text))