以下是我需要做的事情:
if ((a<100 and a>-100) and (b<100 and b>-100)):
#i.e., if both a and b lie in the interval (-100,100)
想知道我是否可以用更短的方式写出来。
UPD:找到以下方式。什么比这短? (虽然这不仅仅是2个变量的短小)
if all((x > -100 and x < 100) for x in (a,b))
答案 0 :(得分:6)
你可以写
(a<100 and a>-100)
作为
-100 < a < 100
因此,您可以将表达式简化为
if -100 < a < 100 and -100 < b < 100:
#Do things
由于您的限制是零对称的,因此可以使用进一步的简化:
abs(a) < 100
答案 1 :(得分:5)
这个怎么样:
if abs(a) < 100 and abs(b) < 100:
# do work
或
if all(abs(x) < 100 for x in (a,b))
答案 2 :(得分:1)
这是我能做的最简洁; - )
from operator import lt
all(map(lt, [a,-a,b,-b], [100]*4))