缩短2个变量的IF条件(相同比较)

时间:2015-07-02 09:20:14

标签: python if-statement

以下是我需要做的事情:

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))

3 个答案:

答案 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))