我正在嘗試輸入一個沒有設置結果代碼的函數。我可以通過混合到stderr流中的「error:」字符串來告訴它失敗,通常在不同的轉換狀態消息的中間。使用中間結果的嵌套列表理解
我有以下的列表理解工作,但掃描「錯誤:」字符串兩次。由於它只是重新掃描實際的錯誤行,所以它工作正常,但它讓我很煩惱,我無法弄清楚如何使用單個掃描。這裏的工作代碼:
errors = [e[e.find('error:'):] for e in err.splitlines() if 'error:' in e]
簡化明顯的(和錯誤的)方法是拯救「找到」的結果
errors = [e[i:] for i in e.find('error:') if i != -1 for e in err.splitlines()]
不過,我得到「UnboundLocalError:局部變量‘E’之前引用分配」。盲目地顛倒理解中的'for'也是失敗的。這是如何完成的?
THanks。肯特
提供一個樣本?首先是 – MattH
。爲什麼不經常循環看起來像這樣可愛的東西? –
'errors = filter(None,(e.split('error:',1)+ [None])[1] for err.splitlines())' – astynax