データ構造・モジュール・標準ライブラリPartII・仮想環境(5,6,11,12章)
辞書 d = {'a': 1, 'b': 2} に対して、存在しないキー 'c' を d['c'] で参照した場合と d.get('c') で参照した場合の違いに関する説明として、正しいものはどれか。
- Ad['c']もd.get('c')も共にNoneを返す。
- Bd['c']はNoneを返すが、d.get('c')はKeyErrorを送出する。
- Cd['c']もd.get('c')も共にKeyErrorを送出する。
- ✓d['c']はKeyErrorを送出するが、d.get('c')はNoneを返す。
解説
角括弧によるアクセスで存在しないキーを指定するとKeyErrorが発生するが、get()メソッドは存在しない場合に例外を発生させず、デフォルトでNone(第2引数を指定すればその値)を返す。
根拠Pythonチュートリアル 5.5 辞書(dict.getメソッドと角括弧アクセスの違い)