2016-03-09 65 views
-4

我使用textblob來解析英文文本。這是一個單詞列表。如何在python列表中的東西后獲取項目?

['Get', 'coffee', 'and', 'water', 'here'] 
  1. 我想在一個名爲列表1新的列表中的項目「獲得」之後所有的字。

  2. 我想在名爲list2的新列表中獲取'Get'和'here'之間的所有單詞。

什麼是最好的方法來做到這一點?是否有任何預先構建的功能,因爲我想保持我的腳本清潔和簡單。 任何建議將不勝感激。

我試過使用這些函數,但他們不工作,返回任何空列表。

def find_between(s, first, last): 
    try: 
     start = s.index(first) + len(first) 
     end = s.index(last, start) 
     return s[start:end] 
    except ValueError: 
     return "" 

def find_between_r(s, first, last): 
    try: 
     start = s.rindex(first) + len(first) 
     end = s.rindex(last, start) 
     return s[start:end] 
    except ValueError: 
     return "" 
+2

您可以發佈您嘗試過什麼嗎? – IanAuld

回答

0

如果L = [ '獲取', '咖啡', '和', '水', '這裏']

,那麼你必須做到以下幾點:

l2 = l[1:] 
l3 = l[1:4] 
+0

不,不是,我想抓住基於單詞的單詞而不是基於列表的長度。例如,在'獲取'後抓取單詞 –

+0

@DasmondMiles這會切分列表;它不會給你的長度。 – Carcigenicate

+0

@DasmonMiles然後你需要迭代元素並根據你的標準添加元素到另一個列表中 –

2

您可以通過查找單詞索引和使用切片來完成:

try: 
    get_index = l.index('Get') 
    here_index = l.index('here') 
except IndexError: 
    raise ValueError("Get or here is missing") 

without_get = l[get_index + 1:] 
without_both = l[get_index + 1:here_index] 
相關問題