我想处理一个元素列表ls
,每个元素在字典中可能有也可能没有相应的元素d
。我可以想到两种方法来做到这一点。这里,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
两者中,哪个更快?此外,我听说 Python 使用“请求宽恕,而不是许可”的原则。这是否意味着通常使用if
语句进行测试会比使用异常慢?