python中if多条件的简化

2024-06-07 08:36:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一个轴限制为(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有一些简洁的表达方式。有人能告诉我吗?你知道吗


Tags: and项目ifnot条件xminymaxyi
2条回答

如果你真的想开始用煤气做饭,可以创建一个类库来处理3D点(例如,通过扩展这个类库来包含Z坐标:Making a Point Class in Python)。你知道吗

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

def isInBox(self, p1, p2):
    return (p1.X <= self.X <= p2.X and p1.Y <= self.Y <= p2.Y and p1.Z <= self.Z <= p2.Z)

operator chaining的典型情况:

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

它不仅简化了比较,允许删除括号,同时保持可读性,而且只对中心参数进行一次计算,这在与函数的结果进行比较时特别有趣:

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

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

相关问题 更多 >

    热门问题