defaultdict の参照
次のコードを実行したときの出力として、正しいものを1つ選べ。
from collections import defaultdict
d = defaultdict(int)
d["a"] += 1
print(dict(d), d["zz"], len(d))
- A
{'a': 1} 0 1 - B
{'a': 1} KeyError 1 - C
{'a': 1} 0 2 - D
{'a': 1, 'zz': 0} 0 2
正解と解説を見る
正解:C
defaultdict は、存在しないキーを参照すると、既定値を作って保存する。参照しただけでキーが増える点に注意する。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `from collections import defaultdict` | — |
| 2 | `d = defaultdict(int)` | d = defaultdict(<class 'int'>, {}) |
| 3 | `d["a"] += 1` | d = defaultdict(<class 'int'>, {'a': 1}) |
| 4 | `print(dict(d), d["zz"], len(d))` | d = defaultdict(<class 'int'>, {'a': 1, 'zz… |
| 結果 | 実際の出力 | {'a': 1} 0 2 |
- A
誤り。
d["zz"]で、キーzzが追加される。 - B
誤り。
defaultdictは例外にならない。 - C
正しい。存在しないキーの参照でも、既定値(0)でキーが作られる。最初の
dict(d)は、その前の状態。 - D
誤り。
dict(d)は参照する前の状態。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。