python中多个条件的简化

时间:2018-12-12 21:19:57

标签: python if-statement

我想在一个轴限制为(xmin,xmax,ymin,ymax,zmin,zmax)的矩形框中挑选一些项目。所以我使用以下条件,

if not ((xi >= xmin and xi <= xmax) and (yi >= ymin and yi <= ymax) and (zi >= zmin and zi <= zmax)):
    expression 

但是我认为python有一些简洁的方式来表达它。有人可以告诉我吗?

2 个答案:

答案 0 :(得分:14)

operator chaining的典型情况:

if not (xmin <= xi <= xmax and ymin <= yi <= ymax and zmin <= zi <= zmax):

不仅简化了比较,允许删除括号,同时保持了可读性,而且仅对 once 进行了中心参数的计算,当与函数结果进行比较时,这特别有趣:< / p>

if xmin <= func(z) <= xmax:

(因此,如果func有副作用,则不等于2次比较)

答案 1 :(得分:1)

如果您真的想开始用煤气做饭,请创建一个用于处理3D点的类库(例如,将其扩展为包括Z坐标:Making a Point Class in Python)。

然后您可以将上述解决方案封装到该类的方法中,如下所示:

*ngIf