gpt4 book ai didi

python - 使用元组而不是 bool 运算符

转载 作者:行者123 更新时间:2023-11-28 19:55:40 25 4
gpt4 key购买 nike

以下评估由 链接的两个(或多个)条件的方法之间是否存在差异(在性能方面,而不是可读性方面)?

a == 1 and b == 2

(a,b) == (1,2)


相同:

a == 1 or b == 1

1 in (a,b)


哪种方式更可取?一种使用 bool 运算符还是另一种使用元组?

最佳答案

这些是使用 python 2.7

的一些计时
In [29]: a = 1 

In [30]: b = 2

In [31]: timeit a == 1 and b == 2
10000000 loops, best of 3: 82.2 ns per loop

In [32]: timeit (a,b) == (1,2)
10000000 loops, best of 3: 132 ns per loop

In [33]: timeit 1 in (a,b)
10000000 loops, best of 3: 118 ns per loop

当结果为 False 时:

In [37]: timeit a == 2 and b == 2
10000000 loops, best of 3: 52.2 ns per loop

In [38]: timeit 3 in (a,b)
10000000 loops, best of 3: 151 ns per loop

In [39]: timeit (a,b) == (2,2)
10000000 loops, best of 3: 144 ns per loop

a == 2 and b == 2 更快,因为 andshort circuit operator

根据 wim 的评论,使用集合比检查元组的成员更快:

In [55]: timeit 3 in {a,b}
10000000 loops, best of 3: 92.9 ns per loop

关于python - 使用元组而不是 bool 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com