演習課題「単語の出現回数」
スペースで区切られた英単語列が与えられます。
英単語列に含まれる英単語の出現回数を出現した順番に出力してください。
プログラムを実行して、想定どおり出力されれば演習課題クリアです!
※ この演習課題は、Python3でのみ解答することができます。
期待する出力値
red 1
green 2
blue 3
#04:シンプルに問題を解く
前回のチャプターでは、実際に問題を解きました。
今回のチャプターでは、よりシンプルなコードを紹介していきます。
簡潔な書き方でリストを作成することが出来ます。
例えば、1から10の整数をそれぞれ1.5倍した数字が入ったリストを用意するとします。
この場合、このように書きます。(answerに作成したいリストが代入されています)answer = []
for i in range(1, 11):
answer.append(i * 1.5)
print(answer)
このコードを実行すると、下記のように出力されます。[1.5, 3.0, 4.5, 6.0, 7.5, 9.0, 10.5, 12.0, 13.5, 15.0]
リスト内包表記を使って書き直すと、下記のようになります。answer = [i * 1.5 for i in range(1, 11)]
print(answer)
このコードを実行すると、下記のように出力されます。[1.5, 3.0, 4.5, 6.0, 7.5, 9.0, 10.5, 12.0, 13.5, 15.0]
1から10の整数のうちの偶数を、それぞれ1.5倍した数字が入ったリストを用意する場合は、下記のようにif文を追加します。answer = [i * 1.5 for i in range(1, 11) if i % 2 == 0]
print(answer)
このコードを実行すると、下記のように出力されます。[3.0, 6.0, 9.0, 12.0, 15.0]
words = input().split()
while words:
count_word = words[0]
print(count_word, words.count(count_word))
new_words = []
for word in words:
if word != count_word:
new_words.append(word)
words = new_words
words = input().split()
while words:
print(words[0], words.count(words[0]))
words = [word for word in words if word != words[0]]
【Python入門】リストの内包表記の使い方まとめ | プログラミング教室情報サイト【プロナビ】
https://programming-study.com/technology/python-listin/
5.1.3. リストの内包表記 — Python 3.7.3rc1 ドキュメント
https://docs.python.org/ja/3/tutorial/datastructures.html#list-comprehensions
単語のカウント
下記の問題をプログラミングしてください。
スペースで区切られた英単語列が与えられます。
英単語列に含まれる英単語の出現回数を出現した順番に出力してください。
入力される値
半角スペースで区切られた長さNの文字列
入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。
期待する出力
単語、半角スペース、出現回数の順で1行に1単語で出現したすべての単語を、列に出現する順に出力してください。
条件
全てのテストケースにおいて以下の条件を満たします。
1 ≦ N ≦ 1,000
入力例1
red green blue blue green blue
出力例1
red 1
green 2
blue 3
入力例2
Apple Apricot Orange Cherry Apple Orange Cherry Orange
出力例2
Apple 2
Apricot 1
Orange 3
Cherry 2