python - 测试没有重复元素的列表

标签 python duplicates python-3.3

没有一组指令,但我基本上必须为 def hasNoDuplicate 编写代码,并且当列表没有重复项时它会返回 True 。这就是我写的,我是编程新手,所以所有这些都令人难以承受。我不知道在 if 语句中到底要放什么。任何建议都会有很大帮助!

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

最佳答案

def hasNoDuplicates(values):
    foundCounterExampleYet = False
    value = None
    while values:
       value = values.pop()
       if value in values:
           foundCounterExampleYet = True
           break
    return not(foundCounterExampleYet)

现在你得到:

>>> 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]

关于python - 测试没有重复元素的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27366670/

相关文章:

python - 将多个项目附加到 Python 中的列表列表中

Python 模块和对象名称冲突

Python 不更新表

javascript - 从 JavaScript 数组中删除具有重复属性的对象

python - 不使用 set() 删除重复项

python - 使用 Pandas Numpy Python 从开始和结束年份过滤日期时间集

mysql - 如何在不计算原始数的情况下找到重复数

python - for 循环在上一个循环完成之前开始

Python 3.3 库 abpy,文件未定义

python - pygame,如何获取图形的坐标?