亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

filter的簡單替代能成不,比如:

>>> li = ['test', None, '', 'str', ' ?', 'END']
>>> print [x for x in li if len(x.strip())>0]

為什么這么寫就會有類型的錯誤,而你用filter就不會有問題


正在回答

3 回答

x.strip() 如果碰上None會出錯,可以采用了 if x and len(x.strip()) 代替

1 回復 有任何疑惑可以回復我~

原文 里面 return??x and len(x.strip())>0 ?這個如果是None 怎么個檢測原理那 ?? len部分會出錯 ,怎么個return False的??想不通了!~~ 對AND 的用法理解不透 ?


求個解釋

>>>?""?and?"b"
''
的結果是''
而:
None?and?"b"
竟然沒輸出任何東西
0 回復 有任何疑惑可以回復我~
#1

C_Geek

空字符串""和None是不一樣的!
2015-06-07 回復 有任何疑惑可以回復我~
#2

小二百

python中and,如果所有值都是真,則返回最后一個真值,如果某個值為假,則返回第一個假值,所以返回‘’ ‘’為假,None也為假,但是None不會輸出
2015-11-26 回復 有任何疑惑可以回復我~

OMG 是我的錯 這一寫就對的 。print [x for x in li if x and len(x.strip())>0] ?

而我昨天晚上少個條件。。。豬頭了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

filter的簡單替代能成不,比如:

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號