回答編集履歴

3

追記

2019/09/24 14:24

投稿

LouiS0616
LouiS0616

スコア35668

test CHANGED
@@ -39,3 +39,39 @@
39
39
 
40
40
 
41
41
  解法は自由です。
42
+
43
+ 後者についてはKojiDoiさんの回答に詳しいので、私は前者を書いてみます。
44
+
45
+ ```Python
46
+
47
+ >>>
48
+
49
+ >>> textlist = ["I saw a red apple", "I saw an apple", "I saw a reddish apple"] # お借りしました
50
+
51
+ >>> colors = ['red', 'blue', 'yellow',]
52
+
53
+ >>>
54
+
55
+ >>> for text in textlist:
56
+
57
+ ... words = text.lower().split()
58
+
59
+ ... if any(word in colors for word in words):
60
+
61
+ ... print('colors')
62
+
63
+ ... else:
64
+
65
+ ... print('not colors')
66
+
67
+ ...
68
+
69
+ colors
70
+
71
+ not colors
72
+
73
+ not colors
74
+
75
+
76
+
77
+ ```

2

追記

2019/09/24 14:24

投稿

LouiS0616
LouiS0616

スコア35668

test CHANGED
@@ -25,3 +25,17 @@
25
25
  True
26
26
 
27
27
  ```
28
+
29
+
30
+
31
+ ---
32
+
33
+ ただ、例えば redact とか predict も引っかかるのが問題です。
34
+
35
+ - 空白で分割して、単語を調べる?
36
+
37
+ - 正規表現の単語境界を活用する?
38
+
39
+
40
+
41
+ 解法は自由です。

1

追記

2019/09/24 12:49

投稿

LouiS0616
LouiS0616

スコア35668

test CHANGED
@@ -9,3 +9,19 @@
9
9
  True
10
10
 
11
11
  ```
12
+
13
+
14
+
15
+ 正規表現を使う方法もありますが、個人的には好みではありません。
16
+
17
+ 他の方法で充分記述できるのに、正規表現を持ち出すのが大げさに思えるからです。
18
+
19
+ ```Python
20
+
21
+ >>> import re
22
+
23
+ >>> bool(re.search(r'red|blue|yellow', text))
24
+
25
+ True
26
+
27
+ ```