【问题标题】:finding duplicates in a list using LEN? [duplicate]使用 LEN 在列表中查找重复项? [复制]
【发布时间】:2026-02-10 15:20:03
【问题描述】:

好的,所以作业是:

如果列表 list1 有任何重复的 > 元素(即任何元素出现多次),则将 True 与变量 has_dups 关联,否则将 False 关联。

好的,因此进行了一些搜索,并找到了几种不同的方法来搜索是否存在重复项。但这就是它变得……奇怪的地方。

我的作业系统告诉我这些方法是错误的,我应该使用 LEN。

嗯...知道列表的长度如何帮助我找出列表中是否有重复项?就像我有

myList = [200,200,201,202] 

好的,Len 会告诉我,里面有 4 件物品。那么...这对我找到重复项有什么帮助?

【问题讨论】:

  • 这实际上并没有回答我的问题,因为它只是告诉我执行该功能的代码,它没有解释为什么使用 len 或它如何帮助解决问题。关键点是使用 set 函数并解释 set 的作用。
  • 是的,如果这就像特定语言的第二或第三门课程,我可以遵守。但事实并非如此。据我了解,这甚至不是 Python 特定编程的第一门课程,而是对编程概念的介绍。作为一般编程的第一类,为什么我会假设有一个预先构建的函数可以从列表中删除重复项?我的意思是,当我这样做时,我是否还应该假设有一个预先构建的函数来生成按第一个元素按字母顺序排序的列表列表?
  • 除非我错过了什么,那不是只对单个列表的内容进行排序吗?

标签: python list function


【解决方案1】:

您可以对照列表本身的长度检查列表集合的长度:

if len(set(myList)) < len(myList):
   pass

【讨论】:

    【解决方案2】:

    一个集合具有独特的元素,这意味着没有重复。因此,如果您有重复项,则集合(列表)的长度将与列表不同。

    if len(mylist) != len(set(mylist)):
        return True
    return False
    

    【讨论】:

    • 啊设置函数。如果书中提及该功能,那就太好了。我的意思是我知道有一个列出函数的文档,但这是对编程的介绍。它仅使用 python 作为编程概念的载体。我期望这本书提到“在处理列表时很方便的两个函数是 LEN 函数,它返回列表的长度和 SET 函数,它返回列表中唯一项目的数量”,我是不是错了。 ?
    • @MichaelCividanes 最后,你学会了,所以这很重要:)
    • 您不需要 else,因为 return True 的作用类似于 break
    • @ᴬᴶᵁᴾᴾᴬᴸ 你是对的。采纳了答案。
    【解决方案3】:

    函数set 将传入的list 转换为不保持重复的set。因此,您可以执行以下操作:

    def hasDuplicates(mylist):
        if len(mylist) == len(set(mylist)):
            return False
        return True
    

    【讨论】:

    • 是的,这本书根本没有提到 set 函数。如果这是在特定于 python 的课程中​​说的一个类,我不会有任何问题,并且我们没有偶尔将脚趾浸入 java 和 php。