问题描述:
使用text9.index()查找词sunset的索引值。你需要将这个词作为一个参数插入到圆括号之间。通过尝试和出错的过程中,找到完整的句子中包含这个词的切片。
解题思路:
用两个集合,一个存放sunset的位置,一个存放标点符号的位置,然后将sunset插入到标点符号之间。
代码:
1 import nltk 2 from nltk.book import * 3 4 def solution(): 5 pun = [i for i,j in enumerate(text9) if j==‘.‘ or j==‘?‘ or j==‘!‘] 6 sunset = [i for i,j in enumerate(text9) if j==‘sunset‘] 7 ans = [] 8 flag = 0 9 for i in range(len(sunset)): 10 j = flag 11 while j < len(pun): 12 if sunset[i] < pun[j] and pun[j-1] < sunset[i]: 13 ans.append([pun[j-1]+1,pun[j]+1]) 14 flag = j + 1 15 break 16 j += 1 17 print ans 18 for i in range(len(ans)): 19 print ‘ ‘.join( text9[ ans[i][0] : ans[i][1]] ) 20 21 22 def ref(): 23 for var in [i for i,j in enumerate(text9) if j==‘sunset‘]: 24 ori_var=var 25 pun=[‘!‘,‘?‘,‘.‘] 26 start=0 27 stop=0 28 while start==0 or stop==0: 29 if text9[var] in pun and stop==0: 30 stop=var+1 31 var=ori_var 32 elif text9[var] not in pun and stop==0: 33 var+=1 34 elif text9[var] not in pun and stop!=0 and start==0: 35 var-=1 36 elif text9[var] in pun and stop!=0: 37 start=var+1 38 print ‘start from %d to end in %d‘%(start,stop) 39 print ‘ ‘.join(text9[start:stop]) 40 41 42 if __name__ == "__main__": 43 solution() 44 raw_input()
原文:http://www.cnblogs.com/yezuoxian/p/6690191.html