7 Möglichkeiten, zu überprüfen, ob ein Python-String einen Teilstring enthält

7 Möglichkeiten, zu überprüfen, ob ein Python-String einen Teilstring enthält

Das Arbeiten mit Strings ist eine häufige Aufgabe in Python. Oft müssen Sie herausfinden, ob eine Zeichenfolge eine andere Zeichenfolge enthält.

Zu den einfachsten Methoden zum Überprüfen, ob ein Python-String einen Teilstring enthält, gehören der „in“-Operator, die Funktion „find()“ und die Methode „index()“. Komplexere Szenarien können mit regulären Ausdrücken oder einer externen Bibliothek wie Pandas gelöst werden.

Dieser Artikel zeigt Ihnen:

  • vier einfache Methoden

  • zwei komplexere Regex-Funktionen

  • eine Methode, die die Pandas-Bibliothek verwendet

Sie lernen jede Technik anhand von Beispielen ihrer Syntax und Verwendung kennen. Außerdem erhalten Sie Tipps, welche Methode für unterschiedliche Anforderungen am besten geeignet ist.

Lass uns anfangen!

Inhaltsverzeichnis

Grundlagen von Python-Strings

Ein String in Python ist eine Zeichenfolge, die zur Darstellung textbasierter Daten verwendet wird. Sie können Buchstaben, Ziffern, Symbole und Leerzeichen enthalten.

Es handelt sich um einen der integrierten Datentypen von Python und kann mit einer der folgenden Methoden erstellt werden:

  • Einzelzitate (' ')

  • Anführungszeichen (" ")

  • Dreifache Anführungszeichen („' „' oder „““ „““)

Zeichenfolgen sind indiziert, was bedeutet, dass Sie auf bestimmte Zeichen zugreifen können, indem Sie auf deren Indexnummer verweisen. Der Startindex ist 0, was bedeutet, dass das erste Zeichen einer Zeichenfolge den Index 0 hat, das zweite den Index 1 und so weiter.

Als nächstes schauen wir uns Möglichkeiten an, um nach Teilzeichenfolgen zu suchen.

4 einfachste Möglichkeiten, nach Teilzeichenfolgen zu suchen

Python bietet viele Möglichkeiten, um zu überprüfen, ob ein bestimmter Teilstring innerhalb eines größeren Strings vorhanden ist. Einige sind komplexer als andere. Für die grundlegendsten Prüfungen sind die einfachsten Methoden der in-Operator oder eine von drei String-Methoden.

  1. im Betreiber

  2. find()-Methode

  3. index()-Methode

  4. count()-Methode

7 Möglichkeiten, zu überprüfen, ob ein Python-String einen Teilstring enthält

1. Im Operator

Der „in“-Operator in Python ist eine einfache und intuitive Möglichkeit, zu überprüfen, ob eine Zeichenfolge in einer anderen Zeichenfolge vorhanden ist. Dieser Operator prüft die Mitgliedschaft und gibt einen booleschen Wert zurück:

  • True, wenn die Teilzeichenfolge innerhalb der Hauptzeichenfolge gefunden wird

  • Falsch, wenn nicht

Hier ist ein Beispielcode:

s = "Hello, world!"
sub = "world"
result = sub in s
print(result)  # Output: True

Beim „in“-Operator wird die Groß-/Kleinschreibung beachtet. Das bedeutet, dass Klein- und Großbuchstaben unterschiedlich behandelt werden. Der obige Code findet die Teilzeichenfolge „Hallo“ nicht, daher gibt der Operator „false“ zurück.

Wenn Sie eine Prüfung durchführen möchten, bei der die Groß-/Kleinschreibung nicht berücksichtigt wird, können Sie sowohl die Hauptzeichenfolge als auch die Teilzeichenfolge in dieselbe Groß-/Kleinschreibung umwandeln, bevor Sie die Prüfung durchführen:

s = "Hello, world!"
sub = "hello"
result = sub.lower() in s.lower()
print(result)  # Output: True

Der Nachteil des in-Operators besteht darin, dass er nicht die Position des Teilstrings innerhalb des Hauptstrings angibt. Dafür benötigen Sie in diesem Abschnitt eine andere Methode. Weiter lesen…

2. Find()-Methode

Die Methode find() gibt den ersten Index zurück, an dem die Teilzeichenfolge erscheint, oder -1 , wenn die Teilzeichenfolge nicht gefunden wird.

Sie rufen die Methode find() für einen String s auf und übergeben den Teilstring sub als Argument. Hier ist ein Beispiel:

s = "Hello, world!"
sub = "world"
index = s.find(sub)

if index != -1:
     print("Found at index:", index)  # Output: Found at index: 7
else:
     print("Not found")

Sie können optional einen Start- oder Endindex angeben, um Ihre Suche einzuschränken. Der Nachteil dieser Methode besteht darin, dass sie beim ersten Auftreten stoppt.

3. Index()-Methode

Die Methode index() ist der Methode find() ziemlich ähnlich , außer dass sie einen ValueError auslöst , wenn die Teilzeichenfolge nicht gefunden wird. Das bedeutet, dass Sie den Aufruf in einen Try/Except-Abschnitt einschließen sollten.

Um die Methode index() zu verwenden , rufen Sie sie für eine Zeichenfolge s auf und übergeben Sie die Teilzeichenfolge sub als Argument.

s = "Hello, world!"
sub = "world"

try: 
     index = s.index(sub)
     print("Found at index:", index)  # Output: Found at index: 7
except ValueError:
     print("Not found")

Diese Methode stoppt auch beim ersten Teilstring im Text.

4. Count()-Methode

Die Methode .count() zählt, wie oft ein Teilstring im Originalstring vorkommt. Es gibt eine Ganzzahl zurück, die diese Anzahl darstellt. Wenn der Teilstring nicht im Hauptstring gefunden wird, wird 0 zurückgegeben.

Hier ist ein einfaches Beispiel, das nach dem Buchstaben „o“ im Text „Hello, world!“ sucht:

s = "Hello, world!"
sub = "o"
print(s.count(sub))  # Output:2

2 Möglichkeiten, Zeichenfolgen mit regulären Ausdrücken abzugleichen

Die Verwendung regulärer Ausdrücke (Regex) ist etwas komplexer als die Methoden im vorherigen Abschnitt. Sie bieten Ihnen jedoch mehr Möglichkeiten zur Suche und Analyse des Textes, mit dem Sie sich befassen.

Zwei der einfachsten Möglichkeiten innerhalb des re- Moduls sind:

  1. suchen()

  2. finde alle()

7 Möglichkeiten, zu überprüfen, ob ein Python-String einen Teilstring enthält

1. re.Search()

Die Funktion search() im re- Modul sucht nach einem Muster in einer bestimmten Zeichenfolge und gibt ein Übereinstimmungsobjekt zurück, wenn eine Übereinstimmung gefunden wird. Andernfalls wird None zurückgegeben .

Standardmäßig berücksichtigt die Funktion die Groß-/Kleinschreibung. Sie können das re.IgnoreCase- Flag verwenden, um die Groß-/Kleinschreibung zu vermeiden.

Hier ist ein einfaches Beispiel, das bedingte Anweisungen verwendet, die darauf basieren, ob die Zeichenfolge gefunden wird:

import re
pattern = "python"
text = "I love Python programming"
match = re.search(pattern, text, re.IGNORECASE)

if match: 
     print("Pattern found")
else:
     print("Pattern not found")

Beachten Sie, dass diese Methode die erste Übereinstimmung findet und dann die Suche beendet. Wenn Sie alle Übereinstimmungen finden möchten, ist die nächste auf dieser Liste genau das Richtige für Sie.

2. re.Findall()

Diese Methode findet alle Vorkommen eines Suchmusters in einer bestimmten Zeichenfolge und gibt eine Liste mit allen Übereinstimmungen zurück.

In diesem Beispiel wird ein Muster verwendet, das einer oder mehreren Ziffern in einer Zeichenfolge entspricht. Die Textzeichenfolge „123, 456, 789“ enthält drei Ziffernfolgen.

import re 

pattern = "d+" 
text = "123, 456, 789" 
numbers = re.findall(pattern, text) 

print(numbers)

Dies ist die Antwort aus dem Beispielcode: ['123', '456', '789'].

So finden Sie Teilzeichenfolgen mit Pandas

7 Möglichkeiten, zu überprüfen, ob ein Python-String einen Teilstring enthält

Pandas ist eine beliebte Open-Source-Bibliothek zur Datenanalyse und -manipulation für Python. Es stellt Datenstrukturen und Funktionen bereit, die zum Bearbeiten und Analysieren strukturierter Daten erforderlich sind.

Eine der von Pandas bereitgestellten primären Datenstrukturen ist der DataFrame. Sie können diese vielseitige Datenstruktur verwenden, um zu prüfen, ob eine Zeichenfolge in einer anderen enthalten ist.

Der Vorteil von Pandas besteht darin, dass es Codepakete bereitstellt, die Sie in anderen Programmiersprachen umfangreich schreiben müssten. Insbesondere steckt viel Leistung in der Contains-Funktion.

str.contains() Funktion in Pandas

Die Methode str.contains() testet, ob ein angegebenes Muster oder ein angegebener regulärer Ausdruck in einer Zeichenfolge einer DataFrame-Spalte enthalten ist.

Hier ist ein Beispiel, das die Bibliothek importiert und in einer Liste von Zeichenfolgen nach einer Zeichenfolge sucht:

import pandas as pd

# Creating a sample DataFrame 
data = {'fruits': ['apple', 'banana', 'cherry', 'watermelon', 'orange']} 
df = pd.DataFrame(data) 

# Searching for substrings in the 'fruits' column 
has_an = df['fruits'].str.contains(pat='an', regex=False)

# Filtering the DataFrame based on the search results 
filtered_df = df[has_an] 
print(filtered_df)

In diesem Beispiel suchen wir in der Spalte „Früchte“ nach dem Teilstring „an“ und filtern den DataFrame entsprechend. Die Ausgabe wäre:

  • 1 Banane

  • 4 orange

Wenn Sie nach weiteren Beispielen für die Möglichkeiten von Pandas suchen, schauen Sie sich dieses Video an:

Tipps zur Auswahl einer bestimmten Methode in Python

Die Wahl der Methode hängt maßgeblich von den spezifischen Anforderungen Ihrer Aufgabenstellung ab.

Hier sind vier Gründe, eine der Methoden auszuwählen, die Sie in diesem Artikel gelernt haben, sowie eine Bonusmethode, die Sie an anderer Stelle in diesem Blog kennenlernen werden:

  1. Geschwindigkeit der Bearbeitung

  2. Sie müssen den Speicherort der Teilzeichenfolge kennen

  3. Sie müssen die Anzahl der Vorkommen der Teilzeichenfolge kennen

  4. Sie möchten komplexe Muster abgleichen

  5. Durchführen einer Textanalyse

1. Geschwindigkeit der Verarbeitung

7 Möglichkeiten, zu überprüfen, ob ein Python-String einen Teilstring enthält

Der „in“-Operator ist die beste Wahl, wenn Sie einfach wissen möchten, ob ein Teilstring innerhalb eines Strings vorhanden ist.

Für diesen Zweck ist es einfach, intuitiv und schnell. Es liefert jedoch keine Informationen über den Speicherort oder die Anzahl der Teilzeichenfolgen.

2. Position des Teilstrings

Verwenden Sie die Methoden .find() oder .index() , wenn Sie die Position des ersten Vorkommens eines Teilstrings innerhalb eines Strings kennen müssen.

Beide geben den Index des ersten Vorkommens der Teilzeichenfolge zurück.

3. Anzahl der Teilzeichenfolgen

Verwenden Sie die Methode .count() , wenn Sie wissen möchten, wie oft ein Teilstring in einem String vorkommt.

4. Komplexe Muster

Wenn Sie komplexe Muster abgleichen oder Suchen ohne Berücksichtigung der Groß- und Kleinschreibung durchführen müssen, sind reguläre Ausdrücke am flexibelsten. Die Funktion re.search() kann Muster verarbeiten, die über einfache Teilzeichenfolgen hinausgehen, und problemlos Suchvorgänge durchführen, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird.

Allerdings können reguläre Ausdrücke für einfache Teilzeichenfolgenprüfungen übertrieben sein und auch langsamer und komplexer in der Verwendung und Wartung sein.

5. Durchführen einer Textanalyse

Schauen Sie sich unseren Artikel zur Textanalyse in Python an , der Ihnen zeigt, wie Sie mit der Textblob-Bibliothek arbeiten.

Sie können die .tags- Funktion verwenden, um nach Wortarten zu suchen, oder die .ngram- Funktion, um Wörter zu finden, die häufig zusammen in einem Dokument vorkommen.

Abschließende Gedanken

Sie haben sieben Methoden kennengelernt, um zu überprüfen, ob ein Wort- oder Zeichenfolgenobjekt in einem anderen enthalten ist. Dazu gehörten Mitgliedschaftsoperatoren, integrierte Funktionen, Regex und Pandas-Funktionen.

Jede Methode ist für einige Situationen richtig, aber nicht für alle. Verwenden Sie diesen Artikel als Spickzettel , während Sie die Programmiersprache Python beherrschen und die beste Lösung für Ihre String-Analyse-Aufgabe verwenden.

Denken Sie daran, dass es keine allgemeingültige Methode gibt. Jeder Ansatz hat seine eigenen Vorzüge und Eigenarten. Sie können also ruhig denjenigen auswählen, der zu Ihrem Stil oder dem speziellen Problem passt, das Sie lösen möchten. Letztlich geht es bei Python darum, Ihnen das Leben zu erleichtern, also nutzen Sie seine Flexibilität!


So speichern und laden Sie eine RDS-Datei in R

So speichern und laden Sie eine RDS-Datei in R

Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.

Einführung in den Filterkontext in LuckyTemplates

Einführung in den Filterkontext in LuckyTemplates

In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.

Materialisierungsideen für Datencaches in DAX Studio

Materialisierungsideen für Datencaches in DAX Studio

In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.

Geschäftsberichte mit LuckyTemplates

Geschäftsberichte mit LuckyTemplates

Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst