totalCost = problem.getCostOfActions(self.actions)
回答
看起来你正在尝试在字典或类似的东西中使用列表作为键。列表不可散列,因此它们不能用作字典键或集合。
另一方面,当发生这种错误时,python会为您提供堆栈跟踪,其中包括文件名和行号。你应该能够用这个追踪有问题的代码。
编辑关于踪迹:
cat > script.py
foo = [1,2,3]
bar = {}
bar[foo] = "Boom"
print "Never happens"
python script.py
Traceback (most recent call last):
File "script.py", line 3, in <module> // this is the file and the line-number
bar[foo] = "Boom"
TypeError: unhashable type: 'list'
谢谢... :)让我再看看我的代码 – Shilpa 2010-07-13 09:53:47
可以告诉我如何使用stacktrace?它在哪里 ?我需要什么命令? – Shilpa 2010-07-13 09:58:17
@Shilpa:你从哪里复制错误信息?那里有更多的线路,复制整个地段。 – SilentGhost 2010-07-13 10:01:56
你可能尝试使用可变对象如列表,作为密钥字典,或一组中的一员。无法有效且可预测地跟踪可变项目,因此它们不提供哈希特殊属性。
将不可相干类型添加到集合时会产生错误。
>>> s=set((1,2))
>>> a.add([3,4])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
我认为这可能也是你的情况。使用元组替代列表:
>> a.add((3,4))
>>>
也许行应该是这样的,而不是
totalCost = sum(map(problem.getCostOfActions,self.actions))
,或者如果你喜欢一个发电机表达
totalCost = sum(problem.getCostOfActions(action) for action in self.actions)
因为我看不到你的代码,我认为problem.getCostOfActions()
返回单个动作的成本,因为如果self.actions
是列表self.actions
可能会导致错误
或者,您可以修复函数problem.getCostOfActions()
,以便返回名称所示操作列表的总成本。
考虑加入这一功能的身体你的问题,如果你想帮助修复它
我有Django的同样的错误: food_list = [“垃圾邮件”,“更多的垃圾邮件”,“垃圾邮件”] table.cum.add(food_list)
我得到了错误 - TypeError:列表对象不可用。
的修复程序table.cum.add(* food_list) -add *盈列表到它解 模型方法附加接受ARGS - (X,Y,Z),但不([X,Y,Z ])
希望它有帮助
- 1. 列表包TypeError:'浮动对象不可迭代'
- 2. 创建元组列表(TypeError:'int'对象不可迭代)
- 3. TypeError:'int'对象不可调用python 2.7
- 4. TypeError:'str'对象不可调用
- 5. TypeError:'str'对象不可调用
- 6. Pygame TypeError:'int'对象不可调用
- 7. TypeError:'_curses.curses窗口'对象不可调用
- 8. TypeError:'模块'对象不可调用。 MFCC
- 9. Xgboost TypeError:'str'对象不可调用
- 10. Pygame。 TypeError:'pygame.Surface'对象不可调用
- 11. #TypeError:'list'对象不可调用#
- 12. Python/Pandas TypeError:'list'对象不可调用
- 13. TypeError:'int'对象不可调用(Pygame)
- 14. TypeError:'tuple'对象不可调用
- 15. Python TypeError:'NoneType'对象不可调用
- 16. PyOpenGL TypeError:'NoneType'对象不可调用
- 17. Python URL TypeError:'str'对象不可调用
- 18. django-selenium TypeError:'str'对象不可调用
- 19. Python Tkinter TypeError:'int'对象不可调用
- 20. TypeError:'NoneType'对象不可调用(Python)
- 21. TypeError:'int'对象不可调用Python 3
- 22. TypeError:'pygame.Surface'对象不可调用
- 23. TypeError:'str'对象不可调用错误
- 24. sklearn.metrics.confusion_matrix - TypeError:'numpy.ndarray'对象不可调用
- 25. TypeError:'numpy.float64'对象不可调用?
- 26. BeautifulSoup - TypeError:'NoneType'对象不可调用
- 27. TypeError:'str'对象不可调用
- 28. TypeError:'GeoQuerySet'对象不可调用
- 29. TypeError:'tuple'对象不可调用Python
- 30. is_authenticated()引发TypeError TypeError:'bool'对象不可调用
你能发表一些代码吗? – zoli2k 2010-07-13 09:49:22
您发布了太多信息,我仍在处理它。我认为处理如此大量的细节需要一两天的时间。 – pakore 2010-07-13 09:50:26
常见!我们不应该猜测。请张贴一些代码。 – Drakosha 2010-07-13 09:50:45