我試圖篩選列表,這裏是代碼:過濾Python列表時發生意外輸出:我在做什麼錯?
test=['aaa','bbb','ccc','ddd','footer','header']
def rm_hf(x): return x != 'footer'
filter(rm_hf,test)
結果:
>>>['aaa','bbb','ccc','ddd','header']
,預計結果是,在列表中找到「腳註」並將其刪除。
現在我想刪除這兩個「頭」和「尾」,所以我這樣做:在
test2=['aaa','bbb','ccc','ddd','footer','header']
def rm_hf2(x): return x != 'footer' or x != 'header'
filter(rm_hf2,test2)
結果:
>>>['aaa','bbb','ccc','ddd','footer','header']
現在很奇怪,它只是給了兩個「頁腳','標題'而不是過濾它們?
我做錯了什麼?我認爲我的邏輯是正確的...
,而不是或!!!!! – 2010-11-26 01:05:55
-1:瑣碎的邏輯問題與「怪異行爲」和「Python中的bug」混淆起來。這總是邏輯。測試`rm_hf2`有多難? – 2010-11-26 01:47:24
嗯,我只是問清楚問題,你只是投我我而不是糾正我,哇,什麼專家大聲笑。我不能停止笑。我反正不在乎這裏的選票,所以喜歡投票給我:) – 2010-11-26 02:08:53