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

Python列表查重函数未正常工作,请求排查问题原因

问题分析与解决方法

问题根源

你的函数逻辑存在致命问题:循环只执行了一次就直接终止。当遍历到第一个元素Thandi时,names.count(name)返回1,触发else分支直接返回N/A,函数结束,根本没机会检查后面的James等元素。

return语句的作用是立即终止函数并返回结果,所以你的循环还没开始真正检查重复项就结束了。

修正后的代码

调整逻辑,只有遍历完所有元素都没找到重复项时,才返回N/A:

names = ['Thandi', 'Lebo', 'Oratile', 'James', 'James', 'Thabo']

def find_duplicates(names):
    for name in names:
        if names.count(name) > 1:
            return name
    # 所有元素检查完毕后才返回N/A
    return 'N/A'

print(find_duplicates(names))  # 输出 James

更高效的写法(推荐)

上面的写法每次调用count()都会遍历整个列表,时间复杂度是O(n²),对于大列表效率很低。可以用集合记录已遍历的元素,时间复杂度降到O(n):

def find_duplicates(names):
    seen = set()
    for name in names:
        if name in seen:
            return name
        seen.add(name)
    return 'N/A'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 14:15:53