看板 Python 關於我們 聯絡資訊
由於習慣寫perl,因此現在在使用python,常會被一些較嚴謹的資料型態搞得一個頭兩個大 今天遇到一個問題: b = a['1'] + a['2'] + ... + a['100'] 其中 a['i'] 有可能是None 如果是None,則由於string object與None object無法做"+"的運算,會出現錯誤 請問有什麼好方法避掉這錯誤嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.124.185.18
yungyuc:''.join([a['%d'%i] for i in range(1,101) if a['%d'%i] 08/05 18:37
yungyuc:!=None]) 08/05 18:37
yungyuc:如果你的 a 是 list 而不是 dict 的話比較方便 08/05 18:38
yungyuc:''.join(item for item in a if item != None) 08/05 18:39
yungyuc:變成可以用 generator 08/05 18:39
yungyuc:hmmm... 錯了,原本的也可以用 generator 08/05 18:40
yungyuc:但 list 的 code 比較短 08/05 18:40
sbrhsieh:''.join(a[str(x)] or '' for x in xrange(1, 101)) 08/05 22:33
giveatry:要不要當初寫進dict時就回傳""而不是none? 08/05 22:52
tumc:我再問一下,dict有沒有method是可以遇到value是None,就回傳"" 08/05 23:02
buganini:自己寫個class? 08/06 00:09
dotwsc:推 sbrhsieh, 直接用 or 就可以了 ^^ 08/06 01:12