Python-Trick-Operation: Sieben Möglichkeiten, um festzustellen, ob eine Teilzeichenfolge enthalten ist

Es gibt viele (und immer mehr) erweiterte Funktionen in der Python-Sprache, die bei Python-Enthusiasten sehr beliebt sind. In den Augen dieser Leute sind diejenigen, die erweiterte Funktionen schreiben können, die gewöhnliche Entwickler nicht verstehen können, Meister und Götter.

Aber man muss wissen, dass es in der Teamarbeit ein Tabu ist, Fähigkeiten zu zeigen.

Warum sagst du das? Lassen Sie mich über meine Meinung sprechen:

  1. Je einfacher der Code und je klarer die Logik, desto weniger fehleranfällig.
  2. In der Teamarbeit wird Ihr Code nicht nur von Ihnen gepflegt. Es ist eine gute Moral, die Kosten für das Lesen / Verstehen der Logik des Codes zu senken.
  3. Einfacher Code verwendet nur den grundlegendsten syntaktischen Zucker, und komplexe erweiterte Funktionen weisen mehr Abhängigkeiten auf (z. B. Sprachversionen).

Dieser Artikel ist der dritte Inhalt der " Hyun Technology Series ". In dieser Serie werde ich die erstaunlichen Operationen, die ich gesehen habe, zusammenfassen und zählen. Wenn Sie ein Python-Enthusiast sind, können Sie hier einige coole Codierungsfähigkeiten erlernen. Gleichzeitig kann das Lesen dieser Inhalte Ihnen helfen, den Code anderer Personen zu lesen.

1. Verwenden Sie in und nicht in

inUnd not inin Python sind sehr beliebte Schlüsselwörter, wir werden sie als klassifizieren 成员运算符.

Mit diesen beiden Elementoperatoren können wir intuitiv und klar bestimmen, ob sich ein Objekt in einem anderen Objekt befindet. Beispiele sind:

>>> "llo" in "hello, python"
True
>>>
>>> "lol" in "hello, python"
False

2. Verwenden Sie die Suchmethode

Wenn mit der find-Methode des Zeichenfolgenobjekts eine Teilzeichenfolge gefunden wird, kann sie die Position der angegebenen Teilzeichenfolge in der Zeichenfolge zurückgeben. Wenn sie nicht gefunden wird, wird sie zurückgegeben -1

>>> "hello, python".find("llo") != -1
True
>>> "hello, python".find("lol") != -1
False
>>

3. Verwenden Sie die Indexmethode

Das Zeichenfolgenobjekt verfügt über eine Indexmethode, die den Index des ersten Auftretens der angegebenen Teilzeichenfolge in der Zeichenfolge zurückgeben kann. Wenn diese nicht gefunden wird, wird eine Ausnahme ausgelöst. Sie müssen daher bei der Verwendung auf die Erfassung achten.

def is_in(full_str, sub_str):
    try:
        full_str.index(sub_str)
        return True
    except ValueError:
        return False

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

4. Verwenden Sie die Zählmethode

Mit der Idee, das Land mit der Indexkurve zu retten, können wir auch die Zählmethode verwenden, um zu beurteilen.

Solange das Beurteilungsergebnis größer als 0 ist, bedeutet dies, dass der Teilstring in der Zeichenfolge vorhanden ist.

def is_in(full_str, sub_str):
    return full_str.count(sub_str) > 0

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

5. Durch magische Methoden

Bei der ersten Methode, die wir zum Beurteilen verwenden und die nicht in einer Unterzeichenfolge vorhanden ist, ist in einem anderen Zeichen vorhanden. Wenn Sie tatsächlich in und nicht in verwenden, prüft der Python-Interpreter, ob das Objekt über eine __contains__magische Methode verfügt.

Wenn dies der Fall ist, wird es ausgeführt. Wenn dies nicht der Fall ist, iteriert Python automatisch die gesamte Sequenz und gibt True zurück, solange das gewünschte Element gefunden wird.

Beispiele sind wie folgt;

>>> "hello, python".__contains__("llo")
True
>>>
>>> "hello, python".__contains__("lol")
False
>>>

Diese Verwendung unterscheidet sich nicht von der Verwendung in und nicht in, schließt jedoch nicht aus, dass jemand sie so schreibt, um das Verständnis des Codes zu erschweren.

6. Mit Hilfe des Bedieners

Das Operatormodul ist eine in Python integrierte Operatorfunktionsschnittstelle, die einige Funktionen für integrierte Arithmetik- und Vergleichsoperationen definiert. Das Operatormodul ist in c implementiert, sodass die Ausführungsgeschwindigkeit höher ist als bei Python-Code.

Es gibt eine Methode im Operator, containsmit der leicht festgestellt werden kann, ob der Teilstring in der Zeichenfolge enthalten ist.

>>> import operator
>>>
>>> operator.contains("hello, python", "llo")
True
>>> operator.contains("hello, python", "lol")
False
>>> 

7. Verwenden Sie regelmäßige Übereinstimmungen

Apropos Suchfunktion: Die reguläre Regel kann definitiv als professionelles Werkzeug bezeichnet werden und wie komplex die Suchregeln Sie zufriedenstellen können.

Um festzustellen, ob eine Zeichenfolge in einer anderen Zeichenfolge vorhanden ist, ist die Verwendung der Regelmäßigkeit einfach übertrieben.

import re

def is_in(full_str, sub_str):
    if re.findall(sub_str, full_str):
        return True
    else:
        return False

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

Ich denke du magst

Origin blog.csdn.net/weixin_36338224/article/details/109187689
Empfohlen
Rangfolge