Python';列表';对象不可调用
我尝试在Pyscripter中运行以下代码,但它不断返回错误“'list'对象不可调用”。我通过pythonshell运行了代码,它运行得非常好。我不太明白为什么它在Pyscripter中不起作用。另外,我正在使用Python 2.7Python';列表';对象不可调用,python,pyscripter,Python,Pyscripter,我尝试在Pyscripter中运行以下代码,但它不断返回错误“'list'对象不可调用”。我通过pythonshell运行了代码,它运行得非常好。我不太明白为什么它在Pyscripter中不起作用。另外,我正在使用Python 2.7 import itertools print list(itertools.permutations([1,2,3,4], 2)) 即使在Pyscripter中创建一个简单的列表也会返回相同的错误 list() 提前谢谢 几乎可以肯定,您已经将名称列表反弹到列
import itertools
print list(itertools.permutations([1,2,3,4], 2))
即使在Pyscripter中创建一个简单的列表也会返回相同的错误
list()
提前谢谢 几乎可以肯定,您已经将名称列表反弹到列表实例:
>>> import itertools
>>> print list(itertools.permutations([1,2,3,4], 2))
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
>>>
>>> list = [2,3,4]
>>> list(itertools.permutations([1,2,3,4], 2))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
导入itertools
>>>打印列表(itertools.排列([1,2,3,4],2))
[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
>>>
>>>列表=[2,3,4]
>>>列表(itertools.置换([1,2,3,4],2))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:“列表”对象不可调用
不要调用列表
list
,或字符串str
,等等。您以前在某个地方创建了一个列表并将其命名为list
。这是个坏主意。名称列表
在Python中没有特别处理。启动解释器时,list
命名列表类型,但如果您随后命名其他内容,则list
不再是列表类型的名称,因为名称一次只能引用一件事
因此,当您编写
list()
时,希望创建一个新的列表(即实例化列表类型),Python会像往常一样:查找名称list
,然后尝试将()
(即\u调用
)应用于任何具有该名称的对象。由于list
现在引用了其他一些列表,这就失败了,因为'list'对象不可调用
,正如错误消息所说。单词list和str是Python中的关键字。这就是脚本出错的原因。您可以尝试以下方法:
import itertools
print(list(itertools.permutations([1,2,3,4], 2)))
List = [1,2,3,4,5,6]
print(list(itertools.permutations(List, 2)))
干杯 @Olli您的评论中几乎没有足够的信息来确定您实际做了什么,更不用说诊断它导致问题的原因了。请阅读,然后问一个新问题。