為什么lambda s后用【 s and len(s.strip())>0 】可以而 【 (len(s.strip())>0) and s 】不行
print?filter(?lambda?s:?s?and?len(s.strip())>0?,['test',?None,?'',?'str',?'??',?'END'])?#運行正確 print?filter(?lambda?s:?(len(s.strip())>0)?and?s?,['test',?None,?'',?'str',?'??',?'END'])#運行錯誤
2018-09-17
因為none無法用strip,就是為了避免none被strip報錯,所以才先s,none先判斷false ,and后面就不會執行了。
取巧的用法,這么寫相當于免了你去判斷s是不是none,以及是none之后的后處理
2018-09-17
短路效應
2018-09-16