繁体   English   中英

python:压缩条件或检查多个等于一个公共值的变量

[英]python: condense conditional OR that check several variables equal to a common value

假设我要压缩以下代码行:

if a == 10 or b == 10 or sum == 10 or diff == 10:
    # do something

有没有一种方法可以将所有这些ors压缩为一个值?

就像是:

if (a or b or sum or diff) == 10:
    # do something

翻转它

if 10 in {a, b, sum, diff}应该起作用

要概括更多的值,请使用以下命令:

if {val1, val2, val3} & {a, b, sum, diff}

if 10 in [a, b, sum, diff]:

但是,请注意,这仅适用于单个公共值。 如果您有两个值要与四个不同的变量进行比较,那么您就不会获得如此容易实现的“分配定律”。

它不是很短,但是我会使用内置的any()

any(val == x for val in (a, b, c))

在您的情况下:

if any(val == 10 for val in (a, b, sum, diff)):
    # do something

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM