推 s0914714: 把關鍵字加到set 然後判斷是不是in set 11/30 16:22
推 annheilong: 樓上 他應該是想要判斷 set 有沒有出現在 text 中 11/30 16:23
→ s0914714: 修正一下in set 我的意思是將set的元素依序取出 11/30 16:24
→ s0914714: 判斷是否有在set 11/30 16:24
→ s0914714: 抱歉表達錯誤 11/30 16:24
→ s0914714: for item in set: if item in text .... 11/30 16:26
推 noworneverev: any 11/30 16:27
推 s0914714: 推樓上 any更精簡 11/30 16:29
推 annheilong: 推 any ,keyword 可以用 set 或 list 11/30 16:31
推 annheilong: 不過 any 的寫法會先組出 generator 再判斷 11/30 16:46
→ legov: 各位大大,抱歉,手機臨時發文,語意不精確,原來any這麼方 11/30 16:46
→ legov: 便,謝謝! 11/30 16:46
推 annheilong: 啊我錯了... 他不會先組出來才對 11/30 16:50
→ annheilong: 應該說 generator 每取一次才產生一個 11/30 16:50
推 s0914714: any參數必須是iterable 所以只是從container取出資料 11/30 17:25
→ s0914714: 然後看判斷式True or False 如果True就馬上返回True 11/30 17:27
→ s0914714: 如果遍歷完容器都沒返回就返回False 11/30 17:28
推 annheilong: s大說的沒錯 我就是要確認他會不會看到 True 就結束 11/30 17:28
→ annheilong: 答案是會 11/30 17:28
→ s0914714: 其實any的概念就是or; all的概念就是and 11/30 17:29
推 s0914714: 因為any/or 就是有一個條件(或元素)是True就好 11/30 17:33
→ s0914714: 2個3個或更多是不會影響結果 這也是效能考量 11/30 17:34
推 ddavid: 主要就是要注意看它是否為Short-circuit,有的時候其實我 11/30 18:03
→ ddavid: 們會期待每一項都執行到就不能用Short-circuit evaluation 11/30 18:04
→ chickengod: if re.search(r'a|b|c', text, re.I): 12/01 09:07
→ chickengod: 提供 re 的做法w 如果要用在迴圈裡面 把 12/01 09:20
→ chickengod: match = re.compile(r'a|b|c', re.I) 放在迴圈外 12/01 09:20
→ chickengod: if match.search(text): 這樣可以避免重複產生object 12/01 09:20
→ chickengod: re.I 是 regex flag 忽略大小寫 12/01 09:20
推 Yshuan: 用re的複雜度會比 or或any好, 自己手工的話用Trie 12/01 11:34