2017-04-11 48 views
0

我想檢查一個短語是否在一個文本字符串中,如果是的話,然後發送一個字典值爲1,然後重複三個短語。我的代碼有效,但我確定有一個較短的解決方案,但似乎無法找到一個。簡單的python靈魂檢查多個字符串中的字符串設置字典值

self.results['p1_txt'] = self.results['p2_txt'] = self.results['p2b_txt'] = self.results['p3_txt'] = 0 

    if "phase_1" in self.results['text']: 
     self.results['p1_txt'] = 1 

    if "phase_2" in self.results['text']: 
     self.results['p2_txt'] = 1 

    if "phase_2b" in self.results['text']: 
     self.results['p2b_txt'] = 1 

    if "phase_3" in self.results['text']: 
     self.results['p3_txt'] = 1 
+1

根據您使用此代碼做什麼...它可能會更有意義使用'True'和'False'而不是'1',或者只是建立一個發生短語的集合。 – byxor

+0

我從文本創建功能並將它們存儲在數據庫中進行一些NLP分析。我考慮過使用T/F,但首選二進制認爲它可能有助於降低成本。 – pheeper

回答

4

使用常規for循環只使用循環

for item in [1,2,'2b',3]: 
    if "phase_{}".format(item) in self.results['text']: 
     self.results['p{}_txt'.format(item)] = 1 
+1

我沒有意識到使用大括號和forrmat()添加文本,感謝解決方案並教會了我新的東西。 – pheeper

2

解決辦法:

for i in ["1","2","2b","3"]: 
    if ("phrase_" + i in self.results['text']): 
     self.results['p' + i + '_txt'] = 1