关于python:TypeError:’list’对象不可调用但是在IDLE中工作

TypeError: 'list' object is not callable BUT works in IDLE

本问题已经有最佳答案,请猛点这里访问。

以下部分代码在空闲控制台中工作,但在.py脚本内运行时输出错误。所以我不能理解原因。

1
[results[i:i+3] for i in range(0,len(results),3)]

其中结果定义如下:

1
results = [1,2,3,4,5,6,7,8,9]

在空闲状态下,不提示任何错误:

1
2
3
>>> results = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [results[i:i+3] for i in range(0,len(results),3)]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

我的想法是将列表的一部分分组成一个子列表,如这里建议的:创建子列表

谢谢!


您的代码本身工作正常。

1
2
3
>>> results = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [results[i:i+3] for i in range(0,len(results),3)]
>>> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

您可能将名称rangelen指定给某个列表,从而隐藏内置rangelen可调用的。

1
2
3
4
5
>>> range = [] # don't reassign names of builtins!
>>> results = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [results[i:i+3] for i in range(0,len(results),3)]
[...]
TypeError: 'list' object is not callable

出现错误是因为python试图在这里执行[](0,len(results))