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

Python如何判断列表是否为降序?代码报int不可迭代错误求解

报错原因及代码修正说明

直接报错原因

你第2行代码for num in len(list)中,len(list)返回的是代表列表长度的整数,Python的for循环只能遍历可迭代对象(比如列表、range对象、字符串等),整数不属于可迭代对象,因此触发了'int' object is not iterable报错。

其他隐藏问题

除了直接报错外,你的代码还有多处逻辑和规范问题:

  • 不要用Python内置类型名list作为参数名,会覆盖内置的list功能,属于不规范的编码习惯
  • 就算把len(list)改成range(len(list)),后续取list[num+1]的时候也会出现索引越界问题:列表最后一个索引是len(list)-1,num取到最大值时num+1会超出索引范围
  • 判断逻辑和需求不符:你需要判断列表是否为降序排列,但现有逻辑的判断方向完全相反,且触发判断的条件写错了:降序要求前一个元素始终大于后一个元素,只要出现前一个小于等于后一个的情况,就应该直接返回False
  • 没有兼容空列表或者只有1个元素的情况:这类列表默认符合降序规则,但你的代码不会给check变量赋值,直接返回会触发变量未定义的报错

修正后的参考代码

def is_descending(input_list):
    # 空列表或单元素列表默认符合降序规则,直接返回True
    if len(input_list) <= 1:
        return True
    # 仅遍历到倒数第二个元素即可,避免索引越界
    for i in range(len(input_list)-1):
        # 只要出现前一个元素小于等于后一个,就不是降序
        if input_list[i] <= input_list[i+1]:
            return False
    return True

内容的提问来源于stack exchange,提问作者Nicolás Marcelo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:27:02