我想在一个轴限制为(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有一些简洁的方式来表达它。有人可以告诉我吗?
答案 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