python:压缩条件OR,检查几个等于公共值的变量

时间:2017-03-16 19:04:35

标签: python python-3.x conditional

我想要缩小以下代码行:

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

3 个答案:

答案 0 :(得分:3)

翻转

if 10 in {a, b, sum, diff}应该有效

要概括更多值,请使用:

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

答案 1 :(得分:3)

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

但请注意,这仅适用于单个常用值。如果您有两个值可以与四个不同的变量进行比较,那么您就不会轻易实现“分配法”。

答案 2 :(得分:2)

它不会短得多,但我会使用内置的any()

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

在你的情况下:

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

希望这有帮助!