既に回答者が居られますが……
質問者さんが最初に挙げられたコードでは、num_dict
は最初に空の辞書として生成され、その後「もし対応するキーの値が存在しなければ」を考慮した処理を用いて、加算・表示を行うようになっています。num_dict = dict()
とすると、最初はどのキーも存在しないので、どのキーの値をnum_dict[number]
で参照しようとしてもKeyError
になります。.get
は、その対策に使うことができるメソッドです。num_dict.get(number, 0)
は、「もしnum_dict[number]
があればそれを返し、無ければ0を返す」というものです。これでKeyError
を回避しています。
この辺りを考慮し、「もし対応するキーの値が存在しなければ」を回避すれば、もう少しその辺りがシンプルなコードにすることができます。
// PI=...
num_dict = {
'0': 0,
'1': 0,
'2': 0,
'3': 0,
'4': 0,
'5': 0,
'6': 0,
'7': 0,
'8': 0,
'9': 0
}// ちなみにここはループを用いて生成させることができます
for number in PI[2:]:
num_dict[number] += 1
for number in range(10):
print(num_dict[str(number)])