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
希望对您有所帮助!
说我想压缩下面这行代码:
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
希望对您有所帮助!