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

遍历Python整数列表标记正负时报str与int不可比较TypeError求解

错误原因
  • 遍历逻辑使用错误:for i in lst语法中,变量i获取的是列表的元素值而非索引下标,你后续使用lst[i]取值的逻辑完全不符合预期。
  • 遍历过程中修改原列表导致异常:你在迭代原列表的同时持续往列表末尾追加字符串类型的标记,会让循环无限执行,当迭代到后续追加的字符串元素时,变量i就变成了字符串类型,此时执行lst[i] > 0就会触发字符串与整数比较的类型错误。
修复方案

如果你需要生成与原列表元素对应的标记列表,建议新建独立列表存储结果,避免遍历过程中修改原列表:

lst = [-2, 1, -2, 7, -8, -5, 0, 5, 10, -6, 7]
tag_lst = []
for num in lst:
    if num > 0:
        tag_lst.append("positive")
    elif num < 0:
        tag_lst.append("negative")
    else:
        tag_lst.append("zero")

# 若需要将标记追加到原列表末尾,可单独执行extend操作
# lst.extend(tag_lst)

如果你确实需要通过索引遍历原列表,提前固定原列表长度避免循环异常:

lst = [-2, 1, -2, 7, -8, -5, 0, 5, 10, -6, 7]
origin_length = len(lst)
for i in range(origin_length):
    num = lst[i]
    if num > 0:
        lst.append("positive")
    elif num < 0:
        lst.append("negative")
    else:
        lst.append("zero")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:45:04