###発生している問題・エラーメッセージ
単語をカウントするプログラム(https://paiza.jp/learning/word-count)
をpython3で書いていたのですが、期待通りに動きません。
リンクにもありますが下記のようなプログラムを書きたいです。
入力:半角スペースで区切られた長さNの文字列
入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。
期待する出力:
単語、半角スペース、出現回数の順で1行に1単語で出現したすべての単語を、列に出現する順に出力
###該当のソースコード
入力
red green blue blue green blue
text=input().rstrip().split(' ') length=len(text) a=[[text[0],0]] for i in range(length): b=a for j in range(len(a)): if text[i]==a[j][0]: a[j][1]+=1 elif j==(len(a)-1) and b==a: a.append([text[i],1]) for i in range(len(a)): print(a[i][0],a[i][1])
出力
red 1
green 2
blue 3
green 1
blue 1
###試したこと
入力
red green blue blue green blue
text=input().rstrip().split(' ') length=len(text) a=[[text[0],0]] b=0 for i in range(length): c=b for j in range(len(a)): if text[i]==a[j][0]: a[j][1]+=1 b+=1 elif j==(len(a)-1) and c==b: a.append([text[i],1]) for i in range(len(a)): print(a[i][0],a[i][1])
出力
red 1
green 2
blue 3
このようにしたところ、期待通りに動きました。
自分の中では、この2つのプログラムは本質的に同じだと思うのですが、前者のほうはうまく動きません。
###補足情報(言語/FW/ツール等のバージョンなど)
paiza上のpython3を使用しています。
###前提・実現したいこと
勉強のために、問題のコードではなぜ期待通りの出力をしないか教えていただけないでしょうか。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。