zoukankan      html  css  js  c++  java
  • Python报错:TypeError: 'dict_keys' object does not support indexing(机器学习实战treePlotter代码)解决方案

    错误信息:

    学习《机器学习实战》这本书时,按照书上的代码运行,产生了错误,但是在代码中没有错误提示,产生错误的代码如下:

    firstStr = myTree.keys()[0]
    print('树的叶子结点个数为:
    {}'.format(getNumLeafs(myTree)))
    

    报错如下:

    firstStr = myTree.keys()[0]
    TypeError: 'dict_keys' object does not support indexing
    

    把错误信息翻译一下:类型错误:dict_keys 对象不支持索引

    错误产生是因为版本不同,作者使用的是2.x版本,而我使用的是3.7.x版本。

    解决方案

    对于3.x版本,因为python3改变了dict.keys,返回的是dict_keys对象,支持iterable 但不支持indexable,我们可以将其明确的转化成list

    把错误代码修改成如下:

    firstSides = list(myTree.keys()) 
    firstStr = firstSides[0] # 找到输入的第一个元素
    # or 
    firstStr = list(myTree.keys())[0] # 找到输入的第一个元素
    

    此时运行就可以了。

    参考文章:Here

    The desire of his soul is the prophecy of his fate
    你灵魂的欲望,是你命运的先知。

  • 相关阅读:
    java冒泡算法和选择排序法
    JDBC操作数据库,比如修改电商数据库中的分类的id,让各商品随机
    RF使用
    安装RF框架(基于Python)
    selenium+java的常使用的一些操作
    selenium的常用操作
    selenium的8种定位方式(java举例)
    服务管理
    Linux软件安装
    项目依赖
  • 原文地址:https://www.cnblogs.com/RioTian/p/15498878.html
Copyright © 2011-2022 走看看