python - If statement check list contains is returning true when it shouldn't -
i have list contains values:
['1', '3', '4', '4'] i have if statement check if values contained within list output statement:
if "1" , "2" , "3" in columns: print "1, 2 , 3" considering list doesn't contain value "2", should not print statement, is:
output:
1, 2 , 3 can explain why case? way python reads list making occur?
it gets evaluated in order of operator precedence:
if "1" , "2" , ("3" in columns): expands into:
if "1" , "2" , true: which evaluates ("1" , "2") leaving with:
if "2" , true finally:
if true: instead can check if set of strings subset of columns:
if {"1", "2", "3"}.issubset(columns): print "1, 2 , 3"
Comments
Post a Comment