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