私は Python の経験が少しありますが、Udacity コンピューター サイエンス コースを受講して、学んだことのギャップを埋め、既に知っていることを補足しています。このコースでは、キーがハッシュテーブルにない場合にキーの値として None を返すハッシュテーブル ルックアップ関数について説明しました。Python の辞書型は、キーが存在しない場合に KeyError をスローするため、コースではkey in mydict
値を取得する前に使用するように指示されています。
私が疑問に思っているのは、次のことを行う方が良いかどうかです。
mydefaultval = 75
key = ..
mydict = ..
if key in mydict:
val = mydict[key]
else:
val = mydefaultval
.. また
mydefaultval = 75
key = ..
mydict = ..
try:
val = mydict[key]
except KeyError:
val = mydefaultval
Pythonがキーが存在するかどうかを確認するには、辞書でそれを見つける必要があると思います。そのキーの値を取得すると、同じことを 2 回行う必要があります。これを考えるのは正しいですか、それともPythonは何か他のことをしますか?