ITP1_8_C 文字のカウント

onlinejudge.u-aizu.ac.jp

解答

from string import ascii_lowercase, ascii_uppercase
count = [0]*26
while True:
    try:
        sentence = input()
    except: 
        break
    for ch in sentence:
        c = ascii_lowercase.find(ch)
        if -1 < c: count[c] += 1

        c = ascii_uppercase.find(ch)
        if -1 < c: count[c] += 1

for i,j in zip(ascii_lowercase, count):
    print(i + ' : ' + str(j))

zip()関数は複数のイテラブルをfor文で使用したいときに使う
AOJでよくある、~が入力されたら終了という指定が今回はなかったため、
try文でエラーの際に止まるよう記述

ascii_lowercase == abcdefghijklmnopqrstuvwxyz
ascii_uppercase == ABCDEFGHIJKLMNOPQRSTUVWXYZ

配列を作成しようと思ったが、便利なもの見つけたのでモジュール使った