我想检查m在l和h之间。 我会写
if m<=h and m>=l
或
m in range(l,h+1)
后一种看起来更好,但是花费的时间是否超过O(1)?
答案 0 :(得分:5)
O(1):
if m<=h and m>=l:
...
O(n)在Python 2中,但O(1) in Python 3:
if m in range(l, m+1):
...
更好的风格:
if low <= m <= high:
...
注意:如果m可以是非整数(例如,考虑浮点数),则行为是不同的。
答案 1 :(得分:0)
最好使用第一个,但您可以像这样重写它:
if 1<=m<=h
函数range
创建一个列表,in
搜索该列表中是否有m。两次比较在性能上更差。
这仅适用于python 2,在python 3中这两种方法都是最佳的。