Python Wiederholungen in Strings entfernen?
Hallo,
Ich habe in Python einen String und würde Wiederholungen darin entfernen, jedoch sind diese nebeneinander. Nun weiß ich nicht, wie man so was anstellen könnte.
Danke im voraus
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)
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?
Z. B ASGAHDABABABABABABJWJD und ich will die AB s entfernen
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.