Python 测试没有重复元素的列表

Python 测试没有重复元素的列表,python,duplicates,python-3.3,Python,Duplicates,Python 3.3,这里没有一组指令,但我基本上必须为def hasnodupplicate编写一个代码,当列表中没有重复项时,它会返回True。这就是我所写的,我是编程新手,所以所有这些都是非常强大的。我不知道在if语句中应该放什么。任何建议都会大有帮助 def hasNoDuplicates(values): foundCounterExampleYet = False for value in values: if(): foundCounterExam

这里没有一组指令,但我基本上必须为
def hasnodupplicate
编写一个代码,当列表中没有重复项时,它会返回
True
。这就是我所写的,我是编程新手,所以所有这些都是非常强大的。我不知道在
if
语句中应该放什么。任何建议都会大有帮助

def hasNoDuplicates(values):
    foundCounterExampleYet = False
    for value in values:
        if():
            foundCounterExampleYet = True
    return not(foundCounterExampleYet)

你在正确的轨道上。在循环输入时,可以将值存储在
集合中,并使用
in
运算符检查该
集合中的成员身份。请参阅下面代码旁边的我的注释

def hasNoDuplicates(values):
    currentValues = set()              # initialize an empty set
    for value in values:               # iterate over your inputs
        if value in currentValues:     # if the current value is in your set, there is a duplicate
            return False
        else:
            currentValues.add(value)   # no duplicate exists, add it to the set
    return True                        # If it made it through all the values, there were no duplicates
为了好玩,有一种更简单的方法。如果
序列中的项目是可散列的,则可以从整个序列中创建
。根据定义,
集合
可能没有任何重复项,如果原始序列的长度与
集合
的长度相同,则所有项目都是唯一的。如果
集合
较短,则至少有一个重复

def hasNoDuplicates(values):
    return len(values) == len(set(values))
现在您可以:

>>> hasNoDuplicates([1,2,3])
True
>>> hasNoDuplicates([1,2,3,4,6,7,8,9,4])
False
>>> 
这段代码的作用是,它获取输入列表,然后逐个从列表中取出最后一个元素,并检查列表中是否存在该项。如果存在,则检测到重复,并更改
foundCounterExampleYet
的值,从而跳出循环。此检查将一直进行到列表变为空为止<代码>while value
表示在列表不为空时执行此操作

pop
方法从列表中取出最后一个元素。但它有副作用,这意味着它改变了初始输入的值:

>>> [1,2,3].pop()
3
>>> a = [1,2,3]
>>> a.pop()
3
>>> a
[1, 2]

你能发布你的密码吗?@killermonkey50是的,对不起!这既不是代码编写服务,也不是教程服务。仔细想一想,;您如何决定列表中是否有重复项?您是否有任何想法可以尝试?有很多方法可以做到这一点。发布一些想法,人们可以给你一些反馈。这里有一个提示:看起来您正在逐个检查您的每个值。您如何判断是否已经看到了某个值?@CarolineRodgers-cyber的方法可以很好地工作,但请尝试自己找出它。这是你编程教育中的一个基本步骤——不要走他/她的捷径。你能给出一些额外的解释吗?代码是做什么的,为什么?我认为这种方法比赛博的答案更适合OP。当然,我补充了一些解释。我希望这能有点帮助。
>>> [1,2,3].pop()
3
>>> a = [1,2,3]
>>> a.pop()
3
>>> a
[1, 2]