查找值是否接近另一个值

时间:2018-03-04 01:55:26

标签: python python-3.x

这在python中应该相当简单,我似乎无法在谷歌中将正确的搜索放在一起。但是,假设我有两个int值ab,范围是1 - 10和a=6。我想知道b是7还是8(在1 +/-值6之内)。我怎么能在python中有效地做到这一点?

3 个答案:

答案 0 :(得分:2)

您可以使用in运算符:

>>> b in (7, 8)
True

答案 1 :(得分:2)

Omar Einea评论你的问题有一个有效的答案。你可以将它包装成lambda函数:

def test_within(a,b): return a-1 <= b <= a+1

a = 6
b = 7 

test_within(a, b) # True

如果您只担心整数,可以使用in运算符,类似于what @zulu have pointed

def test_within(a,b): return b in [a-1, a+1] # or [a-1, a, a+1] to catch a==b


a = 6
b = 7 

test_within(a, b) # True

在IPython上使用%timeit魔法测试时,第一个解决方案更快一点(232 ns Vs 285 ns)。

答案 2 :(得分:1)

你可以尝试这样:

a=6
b=7
res = [x  for x in range(10) if abs(x-a)==1]
print(b in res)