Python Wiederholungen in Strings entfernen?

4 Antworten

Z. B ASGAHDABABABABABABJWJD und ich will die AB s entfernen

In dem Fall ist es relativ einfach:

s = "ASGAHDABABABABABABJWJD"
for i in range(3):
    s = s.replace("ABAB", "AB")

print(s)

Und schon bekommst du: ASGAHDABJWJD

Hierbei reicht 3x egal wie viele Vorkommen von AB es gibt.

Etwas schwerer wäre es zB im Fall von "ASGAHDABXXABABDFABGTABABJWJD":

s = "ASGAHDABXXABABDFABGTABABJWJD"

searched_substring = "AB"
# Finde das erste vorkommen
pos_first_substring = s.find(searched_substring)
# Slice von Start bis nach den ersten Treffer
s1 = s[0:pos_first_substring + len(searched_substring)]
# Alle AB vim rechtlichen String entfernen
s2 = s[pos_first_substring + len(searched_substring):].replace(searched_substring, "")
# Die zwei Teile zusammenfügen
s = s1+s2

print(s)
Woher ich das weiß:Berufserfahrung – Softwareentwickler f. Web, Win. & Linux (seit 2001)

Was genau meinst du denn mit "Wiederholungen" und "nebeneinander"? Du meinst doppelte Buchstaben, die direkt aufeinander folgen? Kannst du ein Beispiel posten sowie das gewünschte Ergebnis?

schuhdesign60 
Fragesteller
 20.03.2020, 14:47

Z. B ASGAHDABABABABABABJWJD und ich will die AB s entfernen

0

wiederholungen sind natürlich hintereinander , auch wenn sie nebeneinader stehen , reihe bleibt reihe .

fragt sich halt was alles gefunden werden soll , ergo, wie sehen die wiederholungen aus .

Du könntest es in ein Set verwandeln und dann wiederum in eine Liste.Von dort aus gibt er mit der Range-funktion sie wieder als einzelne Strings aus.Diese könntest du verwenden .

Eine Frage

Wozu brauchst du das überhaupt schreib doch direkt ohne Wiederholungen.

Woher ich das weiß:eigene Erfahrung