Python报错:int() argument must be a string, a bytes-like object or a number, not 'list'
报错信息
学习《机器学习实战》这本书时,按照书上的代码运行,产生了错误,但是在代码中没有错误提示,产生错误的代码如下:
sortedClassCount = sorted(classCount.iteritems(),key = operator.itemgetter(1), reverse = True) #排序
报错如下:
错误原因
首先我们先看一下报错:
TypeError: int() argument must be a string, a bytes-like object or a number, not ‘list’
翻译过来是:
类型错误:int()参数必须是字符串、对象或数字之类的字节,而不是“list”
报错位置为:
classNumberStr = int(fileStr.split('_'))[0]
通过对源代码的分析,原因是参数传错了。
根本原因在于:上面这一条代码有问题 ,导致参数传输错误。
解决方案
将代码改为如下:
classNumberStr = int(fileStr.split('_')[0])
然后运行就可以啦!
给大家的忠告:一定要细心,一定要细心,特别是Python,没有C++那么规范,缩进都要认真。
还没有评论,来说两句吧...