lst是一个非常大的整数列表
a,b和c是数字
if a in lst or b in lst or c in lst:
print("found in lst")
if a in lst:
print("found in lst")
elif b in lst:
print("found in lst")
elif c in lst:
print("found in lst")
代码1和代码2是否有速度差异
答案 0 :(得分:0)
严格来说,由于or
运算符支持简短提示,因此您的两个代码示例都将平等运行。这意味着Python不会不评估后续条件,除非之前的条件评估为False
。例如,如果我们有A or B or C
,除非A
和B
都为False
,否则Python将不评估C
。 / p>
您的if
语句也会发生同样的情况:C
仅在A
和B
均为False
时才会被评估。
但是,在大型列表中,您不应该进行任何此类的查询。如果不需要索引列表中的元素,则哈希表(Dictionary)几乎总是更好的选择,因为您将获得O(1)查找时间。