[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