filter函數的第判斷函數,輸出s算是true嗎?
print filter(lambda s: s if len(s.strip()) > 0, ['test', None, '', 'str', '? ', 'END'])。運行報錯為什么?
filter函數的第一個參數是判斷函數,那我輸出s,從判斷語句上講,不應該是true嗎?
print filter(lambda s: s if len(s.strip()) > 0, ['test', None, '', 'str', '? ', 'END'])。運行報錯為什么?
filter函數的第一個參數是判斷函數,那我輸出s,從判斷語句上講,不應該是true嗎?
2019-12-12
舉報
2020-02-23
主要的報錯原因是你的寫的三元表達式缺了else部分,在python中,三元表達式(為真時的結果 if 判斷條件 else 為假時的結果)是一個整體
2019-12-13
filter函數只用給出過濾的正向條件,不需要反向的條件,換if 為 and,判斷存在和長度大于0就可以了。
print filter(lambda s:s and len(s.strip())>0, ['test', None, '', 'str', '? ', 'END'])