可以将两个逻辑表达式合二为一

时间:2019-10-21 23:10:29

标签: python

我想知道是否可以在python中做这样的事情:

if x and y < 0

安装:

if x < 0 and y < 0

在第一种情况下,我看到x被当作布尔值而不是整数。 有糖的语法吗?

4 个答案:

答案 0 :(得分:2)

实际上有语法可以做到这一点(请参见this answer),但是您也可以执行类似的操作

if max(x, y) < 0: 

答案 1 :(得分:2)

如果您喜欢丑陋的代码小子,那么您来对地方了。

if x < 0 > y

如果您有很多变量,这实际上是不错的。

if all(n < 0 for n in [x, y, z])

答案 2 :(得分:1)

内置all()函数可让您根据条件测试一组变量。不完全是糖,但通常是pythonic。

if all(z < 0 for z in (x, y)):

这是一个类似的SO问题,以及有关此功能的官方python文档。

Compare multiple variables to the same value in "if" in Python?

https://docs.python.org/3/library/functions.html#all

答案 3 :(得分:0)

all(map(lambda z: z>0, [x,y]))

应该做