単語分析
CoddyのPythonジャーニー「ロジックとフロー」セクションの一部。レッスン 77/78。
チャレンジ
難しいanalyze_textという名前の関数を作成し、テキスト文字列内のwordsを分析します。
この関数は次の処理を行う必要があります。
- unique wordsを数える(大文字と小文字を区別しない)
- 2回以上appearingするすべてのwordsをFindする
- すべてのpalindrome words(前から読んでも後ろから読んでも同じwords。例: "level")をIdentifyする
3つのキーを持つdictionaryをReturnします。
unique_count: unique wordsのnumber(repeated wordsもそれぞれ1回としてcountする)repeated_words: 2回以上appearingするwordsのsortedリストpalindromes: palindrome wordsのsortedリスト
Notes:
- wordsは大文字と小文字を区別しないものとして扱います(例: "Hello"と"hello"は同じwordです)
- wordsから任意のpunctuation
(.,!?:;"())をremoveします repeated_wordsとpalindromesの両方のlistsをアルファベット順にSortします
Example Input:
"Madam saw a racecar. Dad said hello hello to mom."
Expected Output:
{
'unique_count': 9,
'repeated_words': ['hello'],
'palindromes': ['a', 'dad', 'madam', 'mom', 'racecar']
}自分で試してみよう
def analyze_text(text):
# ここに解答を書いてください
# 1. テキストを単語に分割して正規化する
# (小文字にして句読点を取り除く)
# 2. 各単語の出現回数を数える
# 3. ユニークな単語の数を求める
# 4. 繰り返される単語を特定する(2回以上出現するもの)
# 5. 回文の単語を見つける
# 6. ソートされたリストを含む辞書で結果を返す
passロジックとフローのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ