4つ目に作ったのは、単語カウンター(英語)。
日本語だと、スペースで単語を区切るといったことをしないので、形態素解析が必要になるが、今回は自分のレベルに合わせて英語のみで。
いつかは日本語の単語カウンターを作れるくらいになりたいものです。
今回の学び
単語のカウントには
from collections import Counterを使う。
まずユーザインプットが入力され(user_input)、
余計なスペースをuser_input.split()で省き、これがword_listとなる。
このword_listに対してCounterを使ったもの(Counter(word_list))が、word_countとなる。
単語の総文字数はlen()でカウント。
最も長い・短い単語はmax/min関数を使う。また、key=len()とすることで、最も長い・短い単語を取得する。
#Day4 Word counter
from collections import Counter
user_input = input("Write whatever you'd like!: ")
if user_input.strip() == "":
print("Empty input.")
else:
word_list = user_input.split()
word_num = len(word_list)
word_character_num_without_spaces = sum(len(word) for word in word_list)
word_character_num_with_spaces = len(user_input)
word_average = round(word_character_num_without_spaces / word_num, 2)
longest_word = max(word_list, key=len)
shortest_word = min(word_list, key=len)
word_count = Counter(word_list)
if word_num == 1:
print(f"Word count: 1. Total character count: {word_character_num_without_spaces}")
else:
print(f"Word count: {word_num}")
print(f"Total character count: {word_character_num_without_spaces}")
print(f"Total character count with space: {word_character_num_with_spaces}")
print(f"Word character average: {word_average}")
print(f"Longest word: {longest_word}")
print(f"Shortest word: {shortest_word}")
for word, count in word_count.items():
print(f"{word}: {count}")