简化python中的多个条件

Gao*_*Gao 6 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 
Run Code Online (Sandbox Code Playgroud)

但我认为python有一些简洁的方式来表达它.有人能告诉我吗?

Jea*_*bre 14

操作员链接的典型案例:

if not (xmin <= xi <= xmax and ymin <= yi <= ymax and zmin <= zi <= zmax):
Run Code Online (Sandbox Code Playgroud)

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

if xmin <= func(z) <= xmax:
Run Code Online (Sandbox Code Playgroud)

(如果func有副作用,那么它不等于2次比较)

  • @Ayxan比较运算符在这种情况下不关联; `x <= y <= z`的评估方式类似于`x <= y和y <= z`(但是`y`仅评估一次).它不是简单地评估`x <= y`然后将结果与`z`进行比较. (2认同)