首页 > 解决方案 > TypeError:“列表”对象在尝试访问反向范围时不可调用

问题描述

我正在尝试运行此代码以在 jupyter notebook 中获得 tic-tac 对角线获胜者。

game = [[1, 0, 1],
        [0, 1, 2],
        [1, 2, 1]]


cols = list(reversed(range(len(game))))
rows = range(len(game))

for idx in rows:
    print(idx, cols[idx])

错误

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-250-b70a53369f72> in <module>
      6 
      7 
----> 8 cols = list(reversed(range(len(game))))
      9 rows = range(len(game))
     10 

TypeError: 'list' object is not callable

标签: pythonjupyter

解决方案


你在list某处隐藏了这个名字。在您的代码中搜索如下所示的行:

list = <something>

您可以通过在您之前插入一行来轻松诊断cols = list(...)

print(type(list))

如果您没有对此进行遮蔽,您将看到<class 'type'>出现在您的命令行上。我打赌你会看到<class 'list'>(或完全不同的东西)

尽量不要隐藏内置插件,因为它会导致这样的错误。


推荐阅读