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

Python按条件修改列表元素报'int'对象不可下标是什么原因

问题排查
  • 报错的根本原因是赋值逻辑错误:你在条件分支中写的x = 0是把整个x变量从列表类型重写为整数0,而非修改列表的指定位置元素。
  • 第一次触发条件(也就是i=3,x[i]为4的时候)执行完x = 0后,下一轮循环要读取x[i]时,x已经是整数,整数不支持下标访问,就触发了'int' object is not subscriptable的报错。
修正代码

你只需要把赋值语句修改为对列表指定下标元素赋值即可,修改后的循环代码如下:

x = [1,2,3,4,5,6]
for i in range(len(x)): 
  if x[i] > 3:
    x[i] = 0

如果追求更简洁的写法,也可以用列表推导式实现:

x = [num if num <= 3 else 0 for num in [1,2,3,4,5,6]]

两种写法运行后均可得到目标列表[1,2,3,0,0,0]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:57:04