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

有没有办法将所有这些 or 压缩为指向一个值?

类似于:

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]:

但是请注意,这仅适用于 单个 公共值。如果您有两个值要与四个不同的变量进行比较,那么 "distributive law" 就不会那么容易实现。

它并没有短多少,但我会使用内置的 any():

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

你的情况:

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

希望对您有所帮助!