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

Python列表相邻重复元素检测问题:代码返回结果不符合预期

问题分析:判断连续重复餐品的函数错误排查

你的代码存在三个核心问题,导致无法正确输出结果:

  • 完全没必要用嵌套循环:题目要求判断连续相邻的餐品重复,只需要逐个检查当前元素和下一个元素即可,嵌套循环会遍历所有非连续的元素对,完全多余。
  • 判断逻辑完全错误:你写的if j == i永远不可能成立——因为j是从i+1开始遍历的,j始终比i大1,这个条件永远为假,函数自然只会返回False。
  • 没有比较餐品内容:你只在比较索引值,根本没去检查meals列表里的餐品是否重复,完全偏离了题目要求。

修正后的代码(基础单循环版本)

def menu_is_boring(meals):
    # 遍历到倒数第二个元素,避免i+1超出列表索引范围
    for i in range(len(meals) - 1):
        if meals[i] == meals[i+1]:
            return True
    return False

更简洁的Python风格写法

利用zip将相邻元素配对,再用any()判断是否存在相等的元素对:

def menu_is_boring(meals):
    return any(a == b for a, b in zip(meals, meals[1:]))

测试你给出的输入meals=['Spam', 'Eggs', 'Spam', 'Spam', 'Bacon', 'Spam'],两个版本的代码都会正确返回True。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:20:38