2016-09-16 47 views
0

我知道我們可以對多個條件檢查變量作爲我們可以覈對表達相同的多個變量在python

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) 

如果有,哪一個是一個更好的做法?

感謝提前:)

回答

3

你可以把這些變量在listtuple,然後使用all,以檢查他們都不是你的tuple使用同樣的想法。

if all(var not in null_check for var in (variable1, variable2)): 
    print (variable1, variable2) 
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) 
1

不,你不能做到這一點,但作爲一個Python的方法,您可以把你的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 
相關問題