Könnte man hier das operator-Modul einsetzen?
Verfasst: Donnerstag 7. Juli 2011, 10:24
Hallo,
ich habe folgende Suchfunktion, die eine Sequenz, innerhalb der gesucht werden soll und je eine Liste mit Suchtermen die NICHT, UND oder ODER vorkommen sollen erwartet:
Dazu hätte ich zwei Fragen, die ich mir trotz längerem Doc-Lesen und stackoverflow-Stöbern nicht beantworten kann:
1. Lässt sich meine Funktion mit dem operator-Modul wesentlich vereinfachen?
Ich denke da an die Suchbegriffe der 'not_'- und 'and_'-Liste: Der Unterschied besteht 'ja nur' darin, dass ein Vergleich 'not in search_in' und 'in search_in' stattfindet. Könnte man das nicht 'in einem Aufwasch' erledigen anstatt die beiden 'map'-Ergebnisse zu verketten?
2. Wie ließe sich auf die 'all_'-Funktion verzichten?
mutetella
ich habe folgende Suchfunktion, die eine Sequenz, innerhalb der gesucht werden soll und je eine Liste mit Suchtermen die NICHT, UND oder ODER vorkommen sollen erwartet:
Code: Alles auswählen
def match(search_in, not_, and_, or_):
def all_(iter_):
for element in iter_:
if not element:
return False
return bool(iter_)
return any(map(lambda term: term in search_in, or_)) or \
all_(map(lambda term: term not in search_in, not_) +
map(lambda term: term in search_in, and_))1. Lässt sich meine Funktion mit dem operator-Modul wesentlich vereinfachen?
Ich denke da an die Suchbegriffe der 'not_'- und 'and_'-Liste: Der Unterschied besteht 'ja nur' darin, dass ein Vergleich 'not in search_in' und 'in search_in' stattfindet. Könnte man das nicht 'in einem Aufwasch' erledigen anstatt die beiden 'map'-Ergebnisse zu verketten?
2. Wie ließe sich auf die 'all_'-Funktion verzichten?
mutetella