我知道我们可以根据多个条件检查变量
if all(x >= 2 for x in (A, B, C, D)):
print A, B, C, D
我的问题是,我们可以反过来吗? 我们可以针对相同的条件(一个或两个)检查一个或两个变量
null_check = (None,'','None')
if variable1 not in null_check and variable2 not in null_check:
print (variable1, variable2)
我们可以将上面的代码重写为
if variable1 and variable2 not in null_check:
print (variable1, variable2)
如果是,哪一个是更好的做法?
提前致谢:)
答案 0 :(得分:3)
您可以将变量放在list
或tuple
中,然后使用all
使用相同的构思来检查它们是否都在tuple
中。
if all(var not in null_check for var in (variable1, variable2)):
print (variable1, variable2)
答案 1 :(得分:1)
您可以与第一个代码块完全相同:
null_check = (None,'','None')
if all(variable not in null_check for variable in (variable1, variable2)):
print (variable1, variable2)
或者:
null_check = (None,'','None')
variables = variable1, variable2 # defined elsewhere
if all(variable not in null_check for variable in variables:
print (*variables)
答案 2 :(得分:1)
不,你不能这样做,但作为一种pythonic方法,你可以将null_check
项目放在set
中。并检查交叉路口:
null_check = {None,'','None'}
if null_check.intersection({var1, var2}): # instead of `or` or `any()` function
# pass
if len(null_check.intersection({var1, var2})) == 2: # instead of `and` or `all()` function
# pass