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

Python运行报TypeError: 'list' object is not callable如何解决

报错根因

TypeError: 'list' object is not callable 是因为你把Python列表的索引取值语法写错了:

  • 列表取元素必须用*方括号[]*包裹索引,比如fruits[i]
  • 你写的fruits([i])用了小括号,Python会把这行识别为「调用fruits函数,传入参数[i]」,但你提前把fruits定义成了列表,列表不是可调用的函数/方法,所以直接抛出类型错误。
代码里的其他错误

除了触发报错的括号问题,还有两处逻辑bug:

  • 索引位置多套了一层方括号:就算你把外面的小括号改成方括号,fruits[[i]]也是错的——索引是整数i,不是装着i的列表,不需要额外套[]
  • if块里的i+1是无效代码:这行只计算了i+1的值,没有把结果赋值回i,完全不会改变i的数值;而且就算你写成i = i+1,也会和循环末尾的i+=1叠加,导致索引跳变、漏遍历列表元素,属于冗余逻辑,直接删掉即可。
修正后可正常运行的代码
fruits = ["Apple", "Mango", "Guava", "Kiwi", "Melon"]  
i = 0     
while i < len(fruits):
    if fruits[i] == 'Guava' or fruits[i] == 'Mango':
        print(fruits[i])
    i += 1

运行输出结果:

Mango
Guava

补充:这类遍历列表判断元素的场景,更推荐直接用for循环,不用手动维护索引i,写法更简洁也不容易出索引相关的错误:

fruits = ["Apple", "Mango", "Guava", "Kiwi", "Melon"]
for fruit in fruits:
    if fruit in ('Guava', 'Mango'):
        print(fruit)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:03:23