假设我有以下声明:
for i in range(10000):
if i==5:
do_something_for_5()
else:
do_something()
所以你可以看到python需要检查10000次i是否等于5,浪费了9999次检查。我的问题是,有没有什么技巧可以在捕获 5 一次后,python 将绕过 if-checking 并直接转到 exec do_something()?如果检查,有点像整个短路。怎么做?
更多的。.
我不认为是python的问题,你在很多语言中经常看到这样的检查模式。(编译器会优化它?)案例只是为了演示,我只是讨厌看到电脑检查检查检查无果而终想知道避免这种情况的诀窍。它喜欢这样的场景:你知道只有一个坏人,一旦你抓住了这个坏人,你就撤回了警察和安检,让其他人直接过去,这样可以让进程运行得更快。
更通用的代码如下:
for member in member_list:
if time_consuming_inspect(member)==special_character:#known there is only one candidate match in advance
do_special_thing(member)
else:
do_common_thing(member)