Hallo,
ich habe zwei strings wie z.B.:
"eins1_v2.jpg"
"eins2_v2.jpg"
es ändert sich immer genau eine Zahl, wo im string weiß ich aber nicht (im Beispiel eben die zahl nach "eins").
Nun möchte ich herausfinden, an welcher Position diese sich ändernde Zahl steht.
Die Triviale Herangehensweise wäre mit nem for loop die chars durchzugehen und zu vergleichen. Das ist aber wohl langsam und unelegant. Hat jemand einen besseren Vorschlag? google und difflib helfen mir nicht sonderlich weiter...
Danke schon mal
Sebastian
string diff
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Wenn die erste Ziffernfolge im String interessant ist:
Kann es sein, dass du aus "eins1_v2.jpg" automatisch "eins2_v2.jpg" machen willst?
Code: Alles auswählen
import re
text = 'eins1_v2.jpg'
m = re.search(r'\d+', text)
if m:
print 'gefunden bei', m.start()
else:
print 'nicht gefunden
Wenn du wirklich den ersten Unterschied finden willst, wirst du wohl an einer Schleife nicht vorbeikommen. Das muss aber ja nicht schlimm sein:
Dei dem Anwendungsfall der sich aus deinem Beispiel erahnen lässt, dürfte Geschwindigkeit kaum eine Rolle spielen. Bei mir benötigt das obige Beispiel 0,000006s - das dürfte schnell genug sein.
MFG HerrHagen
Code: Alles auswählen
>>> def find_first_diff(str1, str2):
for index, (a, b) in enumerate(zip(str1, str2)):
if a != b: return index
>>> find_first_diff("abc1defg", "abc2defg")
3
MFG HerrHagen