Python报错:TypeError: 'dict_keys' object does not support indexing(机器学习实战treePlotter代码)解决方案 川长思鸟来 2021-06-11 15:14 369阅读 1赞 # 报错信息 # 学习《机器学习实战》这本书时,按照书上的代码运行,产生了错误,但是在代码中没有错误提示,产生错误的代码如下: firstStr = myTree.keys()[0] print('树的叶子结点个数为:\n{}'.format(getNumLeafs(myTree))) 报错如下: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NodWl5aXhpbg_size_36_color_F122FF_t_70][] # 错误原因 # 首先我们先看一下报错: > TypeError: 'dict\_keys' object does not support indexing 翻译过来是: > 类型错误:'dict\_keys'对象不支持索引 错误产生是因为版本不同,作者使用的是2.x版本,而我使用的是3.6版本。 # 解决方案 # **对于3.x版本,因为python3改变了dict.keys,返回的是dict\_keys对象,支持iterable 但不支持indexable,我们可以将其明确的转化成list**。将代码改为如下: firstSides = list(myTree.keys()) firstStr = firstSides[0]#找到输入的第一个元素 或者可以改成下面: firstStr = list(myTree.keys())[0]#找到输入的第一个元素 然后运行就可以啦! [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NodWl5aXhpbg_size_36_color_F122FF_t_70]: /images/20210516/581549d508744334815e87d549020882.png
还没有评论,来说两句吧...