[規格]10808-アルファベット数(Python)



質問する


https://www.acmicpc.net/problem/10808

コミットコード

import sys

sentence = sys.stdin.readline().rstrip()

alphabet = {'a': 0, 'b': 0, 'c': 0, 'd': 0, 'e': 0,
            'f': 0, 'g': 0, 'h': 0, 'i': 0, 'j': 0,
            'k': 0, 'l': 0, 'm': 0, 'n': 0, 'o': 0,
            'p': 0, 'q': 0, 'r': 0, 's': 0, 't': 0,
            'u': 0, 'v': 0, 'w': 0, 'x': 0, 'y': 0, 'z': 0}

for s in sentence:
    alphabet[s] += 1

for n in alphabet.values():
    print(n, end=' ')

結果



整理する


コンセプト


辞書が「単語」と「意味」で構成されているように、PythonのDictionaryもキーと値で構成されています.
下図に示すように、ディックシャーナを生成できます.
ディックバッテリ名={鍵:値、鍵:値、...}
ex) score = {'kor': 90, 'eng': 95, 'math': 100}
ディックシリーズが印刷されると、ディックシリーズ全体が印刷されます.
「したがって、キー値だけを取得したい場合は」.keys()「値のみ取得」を使用する場合.「values()」を使用します.
score = {'kor': 90, 'eng': 95, 'math': 100}

print(score) 		 ### {'kor': 90, 'eng': 95, 'math': 100}
print(score.keys()) 	 ### dict_keys(['kor', 'eng', 'math'])
print(score.values())    ### dict_values([90, 95, 100])

「出力による形式」.keys()「わあ」.values()'が「リスト」形式であることがわかります!
したがって、出力リスト要素のように出力し、キー値とvalue値を1つずつ出力できます!
score = {'kor': 90, 'eng': 95, 'math': 100}

for subject in score.keys():
    print(subject, end=' ') 	### kor eng math 
    
for n in score.values():
    print(n, end=' ')		### 90 95 100
    

コメント付きコード

import sys

sentence = sys.stdin.readline().rstrip()

alphabet = {'a': 0, 'b': 0, 'c': 0, 'd': 0, 'e': 0,
            'f': 0, 'g': 0, 'h': 0, 'i': 0, 'j': 0,
            'k': 0, 'l': 0, 'm': 0, 'n': 0, 'o': 0,
            'p': 0, 'q': 0, 'r': 0, 's': 0, 't': 0,
            'u': 0, 'v': 0, 'w': 0, 'x': 0, 'y': 0, 'z': 0}

for s in sentence: # 알파벳 개수 세서 value값에 저장하기
    alphabet[s] += 1

for n in alphabet.values(): # 결과 출력
    print(n, end=' ')

に感銘を与える


ディック・シャナリーのほかに、他の方法を考えなければなりません.