大宮盆栽デイズ - Omiya Bonsai Days -

冗談めかす埼玉のファインマン

@CheckiO@Popular Words

def popular_words(text: str, words: list) -> dict:
    # 小文字に変換する
    lower_text = text.lower()
    # 改行(\n)をスペースに変換する
    replace_text = lower_text.replace('\n',' ')
    # 空白を区切りとして文字列をリストに変換する
    list_text = replace_text.split()
    # 第二引数のwordsリストの数を調べる
    length = len(words)
    # リストvaluesをカラッポにする
    values = []
    # wordsリストの数だけ、値が0のリストを準備する
    for i in range(length):
        values.append(0)
    # wordsとvalues、それぞれのリストを使って辞書を作る
    words_dict = dict(zip(words, values))
    
    # マッチするwordがあるたびに、辞書の値に加算する
    for text in list_text:
        for word in words:
            if text == word:
                words_dict[word] = words_dict[word] + 1
    return words_dict


if __name__ == '__main__':
    print("Example:")
    print(popular_words('''
When I was One
I had just begun
When I was Two
I was nearly new
''', ['i', 'was', 'three', 'near']))

    # These "asserts" are used for self-checking and not for an auto-testing
    assert popular_words('''
When I was One
I had just begun
When I was Two
I was nearly new
''', ['i', 'was', 'three', 'near']) == {
        'i': 4,
        'was': 3,
        'three': 0,
        'near': 0
    }
    print("Coding complete? Click 'Check' to earn cool rewards!")