teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2020/07/16 13:07

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -9,4 +9,25 @@
9
9
  > 以下のように空白で置換されてしまうということです。
10
10
 
11
11
  空白で置換されたのではなく、置換後の先頭の空白が残っているだけだと思います。
12
- `text.replace('ある単語', '').strip()`してやれば空白は取り除かれます。
12
+ `text.replace('ある単語', '').strip()`してやれば空白は取り除かれます。
13
+
14
+ > 実現したいことは、特定の単語が例えばasがwashに含まれていても、削除されず、as単体の単語の時のみ削除したいということです。
15
+
16
+ であれば、まず**単語単位に文章を分割**して削除対象を除いたリストを作り、そのリストから文章を再作成すればよさそうです。
17
+ ```Python
18
+ text = 'The fire snapped and wash as it grew.'
19
+ ignore_words = ['as', 'it']
20
+
21
+ ret = []
22
+ for word in text.split(' '):
23
+ ignore = len(word) <= 0 # スペースは不要
24
+ for iw in ignore_words:
25
+ if word == iw:
26
+ ignore = True
27
+ break
28
+ if not ignore:
29
+ ret.append(word)
30
+
31
+ text = ' '.join(ret)
32
+ print(text) # The fire snapped and wash grew.
33
+ ```

1

追記

2020/07/16 13:07

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -4,4 +4,9 @@
4
4
 
5
5
  > replace()だと''で空白を埋めるため、stripにしました。
6
6
 
7
- の部分の意味が理解できないのですが、単語を削除するなら`text.replace('ある単語', '')`でよいかと思います。
7
+ の部分の意味が理解できないのですが、単語を削除するなら`text.replace('ある単語', '')`でよいかと思います。
8
+
9
+ > 以下のように空白で置換されてしまうということです。
10
+
11
+ 空白で置換されたのではなく、置換後の先頭の空白が残っているだけだと思います。
12
+ `text.replace('ある単語', '').strip()`してやれば空白は取り除かれます。