我上了下面的课
class SentenceReducer():
def getRidOfSentences(self, line, listSentences):
for i in listSentences:
print(i)
return line.replace(i, '')
strings = 'This is a'
def stripSentences(self, aTranscript):
result = [self.getRidOfSentences(line, self.strings) for line in aTranScript]
return(result)
它基本上应该吃一个数据帧,然后每行检查相关行是否包含ListSequences中的一个句子(本例中为1)
但是当我创建一个新类时
newClass = SentenceReducer()
并使用以下数据运行脚本
aTranScript = [ 'This is a test', 'This is not a test']
new_df = newClass.stripSentences(aTranScript)
它删除了原始数据中的'T'
。但它应该取代整个句子('This is a'
)。另外,如果我添加print(i)
,它会打印T
你觉得这里出了什么问题吗
首先,
aTranscript
和aTranScript
不是同一个变量(注意后者的大写字母s
)其次,应该使用
self.listSentences
或SentenceReducer.listSentences
访问listSentences
第三,您使用的
string
没有在任何地方声明最后,函数
stripSentences
不返回任何内容在
getRidOfSentences
内部,变量listSentences
具有值'This is a'
,这是一个字符串对字符串进行迭代会得到单个字符:
您希望将此字符串放入一个列表,以便在该列表上迭代得到整个字符串,而不是单个字符:
另一个问题:
for
循环中的return
意味着函数在第一次迭代结束时退出,这就是为什么您只看到T
,而看不到h
、i
、s
等等相关问题 更多 >
编程相关推荐