2017-01-18 2 views
-1

Ich versuche zu überprüfen, ob eine Zeichenfolge in einer der Schlüssel eines Wörterbuchs ist.Überprüfen Sie, ob eine Zeichenfolge in einem der Schlüssel eines Wörterbuchs

Ich mag die Bedingung True auch zurück, wenn message nur Teil ist ein a_dict ‚s Schlüssel.

Wie würde ich das tun? Gibt es eine Möglichkeit, eine Regex .* in der Zeichenfolge hinzuzufügen? Oder gibt es einen besseren Weg?

+3

Dann müssen Sie über die Schlüssel iterieren und überprüfen Sie jeweils. Dies bedeutet, dass Sie viel von der Effizienz eines Wörterbuchs verlieren. – jonrsharpe

Antwort

7

Sie können any verwenden:

elif any(message in key for key in a_dict): 
    do_something() 

Wenn Sie auch den Schlüssel benötigen, die die Nachricht enthält:

else: 
    key = next((message in key for key in a_dict), None) 
    if key is not None: 
     do_something(key) 
+0

Schön, gibt es eine Möglichkeit, 'Schlüssel' zu' tun_etwas 'zu geben? – jath03

+0

Möchten Sie nur einen Schlüssel oder alle Schlüssel, die die Nachricht enthalten? – Daniel

+0

Alles ist gut genug, aber das Erste wird bevorzugt. – jath03

0

Sie können nicht wirklich tun, was Sie in Operator mit Python wollen. Es ist am besten, die Überprüfung von Hand durchzuführen - iterieren Sie über alle Schlüssel und sehen Sie, ob einer von ihnen Ihre message enthält.

Verwandte Themen