[Python-de] "in" Operator
Karl Pflästerer
sigurd at 12move.de
Die Apr 19 14:02:55 CEST 2005
On 19 Apr 2005, a.zapletal at gmail.com wrote:
> stimmt, aber ich glaube was Albert eigentlich wissen wollte:
> 'in' ist stärker als 'or', deshalb klammern
> if ('a' or 'b' or 'c') in s: print 1
Nur ist das leider falsch. Obiger Ausdruck wertet zuerst die Klammer aus
(was als Ergebnis 'a' ergibt) und prüft danach, ob dieses Ergebnis in
`s' enthalten ist.
Wenn man des öfteren solche Tests hat, lohnt es sich eine kleine
Funktrion dafür zu schreiben, wie etwa:
def memberp (seq1, seq2):
for c in seq2:
if c in seq1: return True
return False
Wenn es lange Sequenzen sind, könnte man auch über die Verwendung von
set() nachdenken (Schnittmenge suchen).
Karl