You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求实现判断列表是否存在重复元素的布尔值返回函数

判断列表是否存在重复元素的解决方案

嘿,我来帮你搞定这个需求——写个函数接收列表输入,判断有没有重复元素,有就返回True,没有就返回False。这里给你两种实用的方法,完全适配你那种生成随机字符串列表的场景(当然其他可哈希类型的元素也能用):

方法一:利用集合去重特性(简洁高效)

集合的核心特性就是不允许重复元素,所以我们可以直接对比原列表和转成集合后的长度:

def has_duplicates(lst):
    # 如果原列表长度和集合长度不一致,说明存在重复
    return len(lst) != len(set(lst))

这个方法一行代码就能实现,时间复杂度是O(n),大多数场景下都足够好用。把你示例里生成的字符串列表传进去,直接就能得到结果。

方法二:遍历+提前终止(更高效的提前检测)

如果列表里的重复元素出现得比较早,我们可以不用遍历整个列表,遇到重复就立刻返回结果,节省时间:

def has_duplicates(lst):
    seen = set()
    for item in lst:
        if item in seen:
            # 发现重复,直接返回True
            return True
        # 没见过的元素加入集合
        seen.add(item)
    # 遍历完都没重复,返回False
    return False

这种方法的优势是在有重复的情况下可以提前结束遍历,比第一种方法在某些场景下更快。

注意事项

如果你的列表里包含不可哈希的元素(比如嵌套列表[1, [2,3], 1]),上面两种用集合的方法会报错,这时候可以换成遍历两两对比的方式,但这种情况在你的示例场景里应该不会遇到~

内容的提问来源于stack exchange,提问作者goran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 11:19:07