要素のリストを処理したいのですがls
、各要素は辞書に対応する要素を持っている場合と持っていない場合がありますd
。私はそれを行うための2つの方法を考えることができます。ここに、s
のキーであるすべての要素のセットがありますd
。構築するときも構築d
するのは簡単なs
ので、与えられたとおりにそれを取ります。
for e in ls:
if e in s:
process(d[e])
と
for e in ls:
try:
process(d[e])
except KeyError:
pass
2つのうち、どちらが速いですか?さらに、Pythonは「許可ではなく許しを求める」という原則を使用していると聞きました。これは、一般に、ステートメントを使用したテストif
は例外を使用した場合よりも遅くなることを意味しますか?