问题:在上面的代码中,我使用了两个特定的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对象。如果我要删除它,可以执行什么替换?
答案 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
元素,这就是为什么会出现错误的原因。当您将它们转换为字符串格式时,应该解决该问题。