Ich versuche, eine Liste zu filtern, hier ist der Code:Unerwartete Ausgabe beim Filtern der Python-Liste: Was mache ich falsch?
test=['aaa','bbb','ccc','ddd','footer','header']
def rm_hf(x): return x != 'footer'
filter(rm_hf,test)
Ergebnisse in:
>>>['aaa','bbb','ccc','ddd','header']
Das Ergebnis erwartet wird, 'Footer' in der Liste zu finden und zu entfernen.
Jetzt möchte ich beide 'header' und 'footer' entfernen, so kann ich dies tun:
test2=['aaa','bbb','ccc','ddd','footer','header']
def rm_hf2(x): return x != 'footer' or x != 'header'
filter(rm_hf2,test2)
Ergebnisse in:
>>>['aaa','bbb','ccc','ddd','footer','header']
Nun seltsam das ist, es gibt nur gerettet ‚Fußzeile ',' header 'anstatt sie zu filtern?
Was habe ich falsch gemacht? Ich denke meine Logik ist korrekt ...
und, nicht oder !!!!! –
-1: Trivial Logik Frage mit "seltsames Verhalten" und "Bug in Python" verdüstert. Es ist immer logisch. Wie schwer kann es sein, 'rm_hf2' zu testen? –
Nun, ich habe nur die Frage klar gestellt, Sie stimmen mich einfach ab, anstatt mich zu korrigieren, wow, was für ein Experte LOL. Ich kann nicht aufhören zu lachen. Nun, ich sorge mich nicht, dass die Abstimmungen hier sind, also genießt es, mich zu wählen :) –