前提・実現したいこと
文章から単語リストを作成するプログラムをつくろうとしています。
要件:
1.単語に記号が含まれないようにする。
2.記号から始まる単語はリストに含まない。
元の文章: 'I /love banana. She also loves banana but he likes apple.'
出したい結果: I, banana, She, also, loves, banana, but, he, likes, apple
発生している問題・エラーメッセージ
エラーメッセージは出ていません。
該当のコードを実行すると、1つ目の'banana'にドットが付いた状態で出力されます。
['I', 'banana.', 'She', 'also', 'loves', 'banana', 'but', 'he', 'likes', 'apple']
該当のソースコード
Python
1text = 'I /love banana. She also loves banana but he likes apple.' 2 3def extract_words(text): 4 words = text.split() 5 6 for word in words: 7 symbols = '/.,!?' 8 last_char = word[-1] 9 first_char = word[0] 10 11 if first_char in symbols: 12 words.remove(word) 13 elif last_char in symbols: 14 replace = word[0:-1] 15 words.remove(word) 16 words.append(replace) 17 else: 18 word = word 19 20 print(words) 21 22extract_words(text)
試したこと
元の文章の / の位置を love の先頭から I の先頭に変えて実行すると、以下のように出したい結果になりました。
['love', 'She', 'also', 'loves', 'banana', 'but', 'he', 'likes', 'banana', 'apple']
使用する文章によっては、/ が消えずにそのまま残った場合もあります。
補足情報(FW/ツールのバージョンなど)
Colaboratory
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/05 22:11