質問: 環境:Python3系,MacOS 文字列中の文字の出現回数をカウントするコードなのですが、理解ができません。 わかりやすく解説のほどお願い致します。 私の解釈では、 1まず、messageに文字列を格納し、countに空の辞書を格納。 2forループ制御文でmessageに格納された文字数(空欄含む)文だけ制御文内容実装する。 内容はcount.setdefault(character,0) → countにcharacterがなければ「0」を返す。 count[character]=count[character]+1 →理解できず。。。 3最後にforループ内で実装された内容をprintで返す。 ``` message='It was a bright cold day in April, and the clocks were striking thirteen.' count={} for character in message: count.setdefault(character , 0) count[character]=count[character] +1 print(count) ```
回答: count[character]でその文字の出現回数が得られます。 'a'の文字が現れたとします。 aがまだ現れていない場合、 ``` count.setdefault('a' , 0) # 'a': 0 count['a']=count['a'] + 1 # 1 = 0 + 1 ``` aがすでに現れている場合、 ``` # 4回目 'a': 3 count.setdefault('a' , 0) # 'a': 3 既に存在するので変化なし。 count['a']=count['a'] + 1 # 4 = 3 + 1 ``` こんな感じの処理になっています。