取得した文字列を単語ごとにわけて配列に代入し、どの文字が何回使われているか調査することがありました。その際に不要な単語(です、ますなど)を配列から除く必要があったので配列から特定のキーワードを削除する方法を調べたのでその備忘録です。
Contents
リスト(配列)の中から特定のキーワードを削除する方法
リストから消したい単語がある時はリストのremove()メソッドを使います。
remove()メソッドを使う
リスト.remove(消したい単語)
以下のように使います。
消したいキーワードが1つでリストの中にも1つの場合
まずは簡単な例から見ていきます。
words_list = ['こんにちは', 'です', '楽しい' ]
words_list.remove( 'です' )
print(words_list) # ['こんにちは', '楽しい']
上記のように消したいキーワードが「です」1つで、リストの中にも消したいキーワードが1つしかない場合は上記の方法で消すことができます。
消したいキーワードが1つでリストの中に複数キーワードが含まれる場合
消したいキーワードがリストの中に何個か含まれる場合はfor文を使って配列の中身を確認して消していきます。
以下サンプルコードです。
words_list = ['こんにちは', 'です', '楽しい', 'おいしい', 'です' ]
for word in words_list:
if word == 'です':
words_list.remove('です')
print(words_list) # ['こんにちは', '楽しい', 'おいしい']
消したいキーワードが複数あり、リストの中にも複数含まれるときのサンプルコード
それでは一番よく使いややこしいパターンの消したいキーワードが複数あり、リストの中にも複数含まれるときのサンプルコードです。
以下サンプルコード。
words_list = ['こんにちは', 'です', 'できる', '楽しい', 'ます', 'おいしい', '言葉', 'です', '汚い', 'ます' ]
# 取り除きたい文字列
exclude_words = ['です', 'ます']
for word in words_list:
for exclude in exclude_words:
if word == exclude:
words_list.remove(exclude)
print(words_list)
結果
[‘こんにちは’, ‘できる’, ‘楽しい’, ‘おいしい’, ‘言葉’, ‘汚い’]
おわり
for文に慣れていないと作るのが面倒ですよね。