TypeError:序列项0:预期的str实例,找不到NoneType,请在此处输入代码

时间:2019-02-07 14:14:28

标签: python-3.x scikit-learn

问题:在上面的代码中,我使用了两个特定的print语句来执行相同的操作。第一个执行其工作时,第二个执行时抛出异常。我已经绞尽脑汁了,但是却无法准确地找到无类型对象从联接内部来的地方:

import numpy as np
from sklearn import preprocessing

input_labels=['red','black','red','green','black','yellow','white']
encoder=preprocessing.LabelEncoder()
encoder.fit(input_labels)

print("\nLabel Mapping:")
for i,item in enumerate(encoder.classes_):
    print(item, '--->',i)

print("\nLabel Mapping:",''.join(print(item, '--->',i) for i,item in 
enumerate(encoder.classes_)))

以下是输出:

Label Mapping:
black ---> 0
green ---> 1
red ---> 2
white ---> 3
yellow ---> 4

Traceback (most recent call last):
  File "C:\Users\satyaranjan.rout\workspace\archival script\bokehtest.py", line 12, in <module>

Label Mapping:
black ---> 0
green ---> 1
red ---> 2
white ---> 3
yellow ---> 4
    print("\nLabel Mapping:"),''.join(print(item, '--->',i) for i,item in enumerate(encoder.classes_))
TypeError: sequence item 0: expected str instance, NoneType found`enter code here`

问题:两个代码块(第8、9、10行)和第12行都具有相同的功能。这是一个衬里(第12行)的问题所在,该衬里从in中返回with的Nonetype对象。如果我要删除它,可以执行什么替换?

1 个答案:

答案 0 :(得分:0)

更改行

print("\nLabel Mapping:",''.join(print(item, '--->',i) for i,item in enumerate(encoder.classes_)))

进入:

print("\nLabel Mapping:",''.join('%s--->%s' % (item, i) for i,item in enumerate(encoder.classes_)))

打印函数的返回值为None,因此您的代码尝试连接None元素,这就是为什么会出现错误的原因。当您将它们转换为字符串格式时,应该解决该问题。