我有一个项目,我必须经常这样做:
if "something" in dict:
some_var = dict["something"]
del dict["something"]
else:
error_handler_or_other_stuff()
Run Code Online (Sandbox Code Playgroud)
不过我有这个想法:
try:
some_var = dict.pop("something")
except KeyError:
error_handler_or_other_stuff()
Run Code Online (Sandbox Code Playgroud)
我的问题是:一般来说,如何"快速"尝试 - 除了构造是处理异常?是否可以使用它,或者"手动"执行这些操作仍然更快.有时我也有必须将值转换为整数的情况:
try:
some_var = int(dict.pop("something"))
except KeyError:
error_handler_or_other_stuff("no such key")
except ValueError:
error_handler_or_other_stuff("bad value for key")
Run Code Online (Sandbox Code Playgroud)
现在,带有异常的解决方案看起来相当不错,因为我可以一步完成两个检查,同时也从dict中删除了原始的键/值对,这是问题的一部分.所以我至少可以说:它看起来像一个优雅的解决方案.但是我不确定它是否更快,或者它是否有其他缺点我应该担心.
| 归档时间: |
|
| 查看次数: |
225 次 |
| 最近记录: |