Python - 在给定输入的同一行查找单词
Python - Finding word on same line as given input
对于我正在创建的方法,我想接受在一行末尾找到的单词,然后我想将找到的单词附加到它的左侧(在行的开头)到一个 space 字符)到一个数组。
到目前为止,这是我的代码:
def ruleElements(factor):
# Creates list of RHS and LHS rule elements
results = []
# If RHS factor is found in grammar, append corresponding LHS.
for line in grammarFile:
start = line.find(0)
end = line.find(' ', start)
if factor in line:
results.append(line[start:end])
return results
到目前为止,输出的数组一直都是空的。不知道我的逻辑哪里错了。
grammarFile 中的一行看起来像,例如:
VP -> V NP
NP -> N
VP -> V PP
我想将 -> 右侧的部分作为输入,并将左侧追加到一个数组中,以供程序的其他部分使用。
用空格分割线。这会按照单词出现的顺序为您提供一个单词列表。
list[-1]是最后一个词,list[-2]是它左边的词。
myStr = 'My dog has fleas'
words = myStr.split(' ')
print(words[-1], words[-2])
fleas
dog
一个想法...
您可以通过“->”分隔符和 trim 个空格来拆分行:
line_items = [x.strip() for x in line.split('->')]
# Splits 'VP -> V PP' into ['VP', 'V PP']
然后您可以在该数组的第二项和 return 第一项中查找您的输入 factor
,如下所示:
for line in grammarFile:
line_items = [x.strip() for x in line.split('->')]
if factor == line_items[1]:
return line_items[0:1]
我不确定 grammarFile 到底是什么(字节?字符串?)但是像这样的东西可以工作。
希望对您有所帮助。
对于我正在创建的方法,我想接受在一行末尾找到的单词,然后我想将找到的单词附加到它的左侧(在行的开头)到一个 space 字符)到一个数组。
到目前为止,这是我的代码:
def ruleElements(factor):
# Creates list of RHS and LHS rule elements
results = []
# If RHS factor is found in grammar, append corresponding LHS.
for line in grammarFile:
start = line.find(0)
end = line.find(' ', start)
if factor in line:
results.append(line[start:end])
return results
到目前为止,输出的数组一直都是空的。不知道我的逻辑哪里错了。
grammarFile 中的一行看起来像,例如:
VP -> V NP
NP -> N
VP -> V PP
我想将 -> 右侧的部分作为输入,并将左侧追加到一个数组中,以供程序的其他部分使用。
用空格分割线。这会按照单词出现的顺序为您提供一个单词列表。 list[-1]是最后一个词,list[-2]是它左边的词。
myStr = 'My dog has fleas'
words = myStr.split(' ')
print(words[-1], words[-2])
fleas
dog
一个想法...
您可以通过“->”分隔符和 trim 个空格来拆分行:
line_items = [x.strip() for x in line.split('->')]
# Splits 'VP -> V PP' into ['VP', 'V PP']
然后您可以在该数组的第二项和 return 第一项中查找您的输入 factor
,如下所示:
for line in grammarFile:
line_items = [x.strip() for x in line.split('->')]
if factor == line_items[1]:
return line_items[0:1]
我不确定 grammarFile 到底是什么(字节?字符串?)但是像这样的东西可以工作。
希望对您有所帮助。