Alle Indizes eines Zeichens in Python String finden

Muhammad Maisam Abbas 30 Januar 2023
  1. Alle Indizes eines Zeichens innerhalb einer Zeichenkette mit regulären Ausdrücken in Python finden
  2. Alle Indizes eines Zeichens innerhalb einer Zeichenkette mit dem Schlüsselwort yield in Python finden
  3. Alle Indizes eines Zeichens innerhalb einer Zeichenkette mit List Comprehensions in Python finden
Alle Indizes eines Zeichens in Python String finden

In diesem Tutorial werden die Methoden zum Abrufen aller Indizes eines Zeichens in einem String in Python erläutert.

Alle Indizes eines Zeichens innerhalb einer Zeichenkette mit regulären Ausdrücken in Python finden

Wir können die finditer()-Funktion innerhalb des re-Moduls von Python für unser spezielles Problem verwenden. Die Funktion finditer() nimmt das Muster und den String als Eingabeparameter. Es liest die Zeichenkette von links nach rechts und gibt alle Indizes zurück, in denen das Muster auftritt. Wir können diese Funktion mit List Comprehension verwenden, um das Ergebnis in einer Liste in Python zu speichern. Der folgende Codeausschnitt zeigt uns, wie wir mit regulären Ausdrücken alle Indizes eines Zeichens innerhalb eines Strings finden.

import re

string = "This is a string"
char = "i"
indices = [i.start() for i in re.finditer(char, string)]
print(indices)

Ausgabe:

[2, 5, 13]

Wir haben die Funktion re.finditer() verwendet, um jedes Zeichen innerhalb des string zu durchlaufen und alle Zeichen zu finden, die mit char übereinstimmen. Wir haben den Index i.start() aller Zeichen, die zu char passen, in Form einer Liste zurückgegeben und in indices gespeichert. Am Ende haben wir alle Elemente von Indizes dargestellt.

Alle Indizes eines Zeichens innerhalb einer Zeichenkette mit dem Schlüsselwort yield in Python finden

Wir können auch das Schlüsselwort yield innerhalb einer Funktion verwenden, um unser spezifisches Problem zu lösen. Das Schlüsselwort yield wird verwendet, um mehrere Werte einer Funktion zurückzugeben, ohne den Zustand der lokalen Variablen dieser Funktion zu zerstören. Beim erneuten Aufruf der Funktion beginnt die Ausführung mit der vorherigen yield-Anweisung. Wir können dieses Schlüsselwort verwenden, um alle Instanzen eines Zeichens innerhalb einer Zeichenkette zurückzugeben. Das folgende Codebeispiel zeigt uns, wie wir mit dem Schlüsselwort yield alle Indizes eines Zeichens innerhalb eines Strings finden.

def find(string, char):
    for i, c in enumerate(string):
        if c == char:
            yield i


string = "This is a string"
char = "i"
indices = list(find(string, char))
print(indices)

Ausgabe:

[2, 5, 13]

Wir haben die Funktion find(string, char) definiert, die durch jedes Zeichen innerhalb des string iteriert und den Index i liefert, wenn das Zeichen mit char übereinstimmt. Beim Aufruf der Funktion find() haben wir alle zurückgegebenen Werte in einer Liste gespeichert und alle Elemente der Liste angezeigt.

Alle Indizes eines Zeichens innerhalb einer Zeichenkette mit List Comprehensions in Python finden

Wir können auch List Comprehensionse verwenden, um unser Problem zu lösen. List Comprehensionse werden verwendet, um neue Listen basierend auf bereits vorhandenen Listen zu erstellen. Wir können List Comprehension verwenden, um jedes Zeichen innerhalb der String-Variablen zu durchlaufen und den Index zurückzugeben, wenn das Zeichen mit dem gewünschten Zeichen übereinstimmt. List Comprehensionse geben Werte in Form von Listen zurück. Wir können diese Indexwerte in einer Liste speichern und die Ergebnisse anzeigen. Der folgende Codeausschnitt zeigt uns, wie wir alle Indizes eines Zeichens innerhalb eines Strings mit List Comprehension finden.

string = "This is a string"
char = "i"
indices = [i for i, c in enumerate(string) if c == char]
print(indices)

Ausgabe:

[2, 5, 13]

Wir haben List Comprehension verwendet, um jedes Zeichen c innerhalb der Variablen string zu durchlaufen und seinen Index i zurückgegeben, wenn das Zeichen c gleich unserem gewünschten Zeichen char ist. Dies ist der einfachste und einfachste Weg, um alle Indizes eines Zeichens in einem String zu finden.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Verwandter Artikel - Python String