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

Python判断列表是否存在相邻3的函数仅首位置生效问题排查

代码错误点说明
  • 参数遍历逻辑错误:你使用*args接收参数后,外层for i in args循环是逐个遍历传入的所有参数,如果你是将整数序列的每个元素作为独立参数传入,i是单个整数,无法执行i[x]索引操作会直接报错;如果你是将整个列表作为单个参数传入,args仅包含1个列表元素,外层循环只会执行1次。
  • 内层循环范围错误:这是你仅能识别下标0位置相邻3的核心原因。你写的range(len(args))取的是args元组的长度,而非待判断整数序列的长度。比如传入长度为4的列表[3,1,3,3]作为参数时,len(args)为1,内层循环只会执行x=0的判断,后续位置完全不会遍历。
  • 索引越界风险:即使你修正了循环范围,若直接用序列总长度作为循环上限,当x取到最后一个下标时,x+1会超出序列索引范围触发报错。
  • 返回时机错误:内层循环绑定的else分支会在for循环正常结束后直接返回False,即便后续有符合条件的相邻3也不会继续判断。
修复后代码

调用时传入独立整数参数(如myfunc(1,3,3,2))

def myfunc(*args):
    # 遍历到倒数第二个元素即可,避免x+1越界
    for x in range(len(args)-1):
        if args[x] == 3 and args[x+1] == 3:
            return True
    # 全部遍历完没找到再返回False
    return False

调用时传入单个列表参数(如myfunc([1,3,3,2]))

def myfunc(nums):
    for x in range(len(nums)-1):
        if nums[x] == 3 and nums[x+1] == 3:
            return True
    return False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:15:03