Python - 有一种更优雅的方式来编写包含多个OR的IF语句

Lew*_*909 1 python

我有这个IF,OR声明:

a = 1
b = 2
c = 3
d = 4

if a == 5 or b == 5 or c == 5 or d == 5:
    # do something
else:
    # do something different
Run Code Online (Sandbox Code Playgroud)

我想知道这是不是最好的写作方式?

Eri*_*nil 6

你可以使用element in list语法.此外,if else如果您只想打印true或,则无需使用声明false.你可以直接打印布尔值:

print(5 in [a, b, c, d])
# False
Run Code Online (Sandbox Code Playgroud)

如果你想要一个小写字符串:

print(str(5 in [a, b, c, d]).lower())
# "false"
Run Code Online (Sandbox Code Playgroud)

最后,如果您经常需要此测试,则可以将值打包到集合中:

a = 1
b = 2
c = 3
d = 4
all_values = set([a, b, c, d])
Run Code Online (Sandbox Code Playgroud)

您将投入一些时间来创建集合,但查询5 in all_values应该变得更快,特别是如果有很多变量.