如果我理解正确,则只需将句子拆分成单词,循环遍历每个单词,然后检查它是否以所需的字符结尾或以以下字符开头,例如:
>>> sentence = ['AASFG', 'BBBSDC', 'FEKGG', 'SDFGF']
>>> [word for word in sentence.split() if word.endswith("GF")]
['SDFGF']
sentence.split()
可能会被类似 nltk.tokenize.word_tokenize(sentence)
,关于评论:
如何在其前面和后面获得单词
该enumerate
函数可用于给每个单词一个数字,如下所示:
>>> print list(enumerate(sentence))
[(0, 'AASFG'), (1, 'BBBSDC'), (2, 'FEKGG'), (3, 'SDFGF')]
然后,如果您执行相同的循环,但保留索引:
>>> results = [(idx, word) for (idx, word) in enumerate(sentence) if word.endswith("GG")]
>>> print results
[(2, 'FEKGG')]
>>> for r in results:
... r_idx = r[0]
... print "Prev", sentence[r_idx-1]
... print "Next", sentence[r_idx+1]
...
Prev BBBSDC
Next SDFGF
你需要处理的情况下比赛的第一个或最后一个字(if r_idx == 0
,if r_idx == len(sentence)
)