我想要缩小以下代码行:
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
答案 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
希望这有帮助!