回答編集履歴

2

追記

2020/07/16 13:07

投稿

can110
can110

スコア38266

test CHANGED
@@ -21,3 +21,45 @@
21
21
  空白で置換されたのではなく、置換後の先頭の空白が残っているだけだと思います。
22
22
 
23
23
  `text.replace('ある単語', '').strip()`してやれば空白は取り除かれます。
24
+
25
+
26
+
27
+ > 実現したいことは、特定の単語が例えばasがwashに含まれていても、削除されず、as単体の単語の時のみ削除したいということです。
28
+
29
+
30
+
31
+ であれば、まず**単語単位に文章を分割**して削除対象を除いたリストを作り、そのリストから文章を再作成すればよさそうです。
32
+
33
+ ```Python
34
+
35
+ text = 'The fire snapped and wash as it grew.'
36
+
37
+ ignore_words = ['as', 'it']
38
+
39
+
40
+
41
+ ret = []
42
+
43
+ for word in text.split(' '):
44
+
45
+ ignore = len(word) <= 0 # スペースは不要
46
+
47
+ for iw in ignore_words:
48
+
49
+ if word == iw:
50
+
51
+ ignore = True
52
+
53
+ break
54
+
55
+ if not ignore:
56
+
57
+ ret.append(word)
58
+
59
+
60
+
61
+ text = ' '.join(ret)
62
+
63
+ print(text) # The fire snapped and wash grew.
64
+
65
+ ```

1

追記

2020/07/16 13:07

投稿

can110
can110

スコア38266

test CHANGED
@@ -11,3 +11,13 @@
11
11
 
12
12
 
13
13
  の部分の意味が理解できないのですが、単語を削除するなら`text.replace('ある単語', '')`でよいかと思います。
14
+
15
+
16
+
17
+ > 以下のように空白で置換されてしまうということです。
18
+
19
+
20
+
21
+ 空白で置換されたのではなく、置換後の先頭の空白が残っているだけだと思います。
22
+
23
+ `text.replace('ある単語', '').strip()`してやれば空白は取り除かれます。