
setdefault
万歳
for letter in word:
if letter in vowels:
found.setdefault(letter, 0)
found[letter] += 1
120
3
章
このコードでは
エラーが出ます。
setdefault
メソッドを使う
現在のバージョンの
vowels5.py
は実行時エラーになっていました。具体的
には
KeyError
でした。このエラーは存在しないキーの値にアクセスするために
起こります。
fruits
を試した結果から、面倒なエラーを心配せずに
setdefault
を何
度でも呼び出せることがわかりました。
setdefault
は存在しないキーを指
定のデフォルト値に初期化するか、または何もしません(つまり、既存のキーに
対応する既存の値はそのままになります)。
vowels5.py
でキーを使う直前
に
setdefault
を呼び出せば、キーは存在するかしないかのどちらかなので
KeyError
を確実に避けられます。いずれにせよ(
setdefault
のおかげで)プ
ログラムは動作を続け、クラッシュしなくなります。
IDLE
の編集ウィンドウで、
vowels5.py
の最初の
for
ループを次のように変
更し(
setdefault
を追加します)、
vowels6.py
として保存します。
setdefault
で
KeyError
例外
を回避できる。
1
行のコードが状況を
一変させてしまうことも
あります。
キー
No4
オブジェクト
キー
No1
オブジェクト
キー
No3
オブジェクト