哪一个会跑得更快

时间:2019-09-29 12:21:45

标签: python performance

lst是一个非常大的整数列表

a,b和c是数字

  • 代码1
    if a in lst or b in lst or c in lst:
        print("found in lst")

  • 代码2
    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是否有速度差异

1 个答案:

答案 0 :(得分:0)

严格来说,由于or运算符支持简短提示,因此您的两个代码示例都将平等运行。这意味着Python不会评估后续条件,除非之前的条件评估为False。例如,如果我们有A or B or C,除非AB都为False,否则Python将评估C。 / p>

您的if语句也会发生同样的情况:C仅在AB均为False时才会被评估。

但是,在大型列表中,您不应该进行任何此类的查询。如果不需要索引列表中的元素,则哈希表(Dictionary)几乎总是更好的选择,因为您将获得O(1)查找时间。