Python:检查一个元素是否在两个其他元素之间

3 投票
1 回答
699 浏览
提问于 2025-04-18 16:48

这里有两个元素:A和B。
我不知道哪个元素更大。为了检查第三个元素(C)是否在它们之间,我这样做:

if A < C < B or B < C < A:
    print("C is between A and B")

有没有更聪明或更快的方法来做到这一点呢?

1 个回答

2

看看到目前为止建议的两种方法,我个人觉得 A < C < B 或 B < C < Amin(A,B) < C < max(A,B) 更容易理解。

一个非常简单的测试也表明,在我的电脑上(至少对于小的 int 值),这种方法的速度也更快。例如:

> python -m timeit("A, B, C = 74, 28, 19; A < C < B or B < C < A")
1000000 loops, best of 3: 0.267 usec per loop

> python -m timeit("A, B, C = 74, 28, 19; min(A, B) < C < max(A, B)")
1000000 loops, best of 3: 0.4 usec per loop

撰写回答