最好的方法是使用 set :
if cond in {'1','2','3','4'}:因为集合中的成员资格测试为O(1)(不变成本)。
其他两种方法的复杂度相同。只是固定成本的差异。
in测试既有清单又有
or链条短路;找到匹配项后立即终止。一种使用字节码跳转序列(如果为
True,则跳转到末尾),另一种使用C循环,如果值匹配则使用早期退出。在最坏的情况下,在这里
cond也
没有 匹配两种方法必须检查的序列中的元素 所有 的元素它可以返回之前
False。在这两者中,我每天都会选择
in测试,因为它更具可读性。



