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

Python年龄分类代码报int与list不支持<比较的TypeError解决方法

错误原因

报错的核心原因是变量类型误用:

  • 你代码开头将Age_Group赋值为[18,24,34,44,54,64],这是一个列表(list)类型的变量,存储的是年龄区间的分界阈值
  • 后续所有条件判断语句,都直接把这个列表和整数类型的年龄数值做</>=类的大小比较,Python不支持列表和整数直接做这类大小比较,因此抛出TypeError: '<' not supported between instances of 'list' and 'int'的报错。

简单说就是你把「存分界值的列表」错当成了「要分类的年龄值」来写判断逻辑。

修复方法

首先需要单独定义存储待分类实际年龄值的变量,再基于这个变量做区间判断。

基础修正写法

直接调整变量定义,修正判断逻辑即可,示例代码如下:

# 替换为你需要分类的实际年龄值
age = 22

if age < 18:
    print("Category: Under 18")
elif 18 <= age <= 24:
    print("Category: 18-24")
elif 25 <= age <= 34:
    print("Category: 25-34")
elif 35 <= age <= 44:
    print("Category: 35-44")
elif 45 <= age <= 54:
    print("Category: 45-54")
else:
    print("Category: 55 and over")

运行上述代码,当age=22时会正确输出Category: 18-24,不会再触发类型错误。

简化写法(复用阈值列表)

如果你想用到一开始定义的年龄分界列表,减少重复的判断条件,可以用循环匹配分类,示例如下:

# 待分类年龄
age = 36
# 区间阈值、对应分类标签
age_thresholds = [18,25,35,45,55]
category_labels = [
    "Category: Under 18",
    "Category: 18-24",
    "Category: 25-34",
    "Category: 35-44",
    "Category: 45-54",
    "Category: 55 and over"
]

for idx, threshold in enumerate(age_thresholds):
    if age < threshold:
        print(category_labels[idx])
        break
else:
    print(category_labels[-1])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:51:17