Richtiger Ansatz bei Textüberprüfung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Freitag 15. April 2005, 15:50

Ich habe jetzt mal folgendes gemacht:

Code: Alles auswählen

class finder:
    def __init__(self, text, offset, word):
        chars = [
            'A','B','C','D','E','F','G','H','I','J',
            'K','L','M','N','O','P','Q','R','S','T',
            'U','V','W','X','Y','Z','Ä','Ö','Ü','1',
            '2','3','4','5','6','7','8','9','0'
        ]
        self.text = ''
        text = text.upper()
        for char in text:
            for c in chars:
                if c == char: 
                    self.text += char
                    break
        self.offset = offset
        self.word = word
Aber das ist ein sehr langsamer weg.
Wie kann ich die For Schleifen durch etwas Schnelleres ersetzen?
TUFKAB – the user formerly known as blackbird
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Freitag 15. April 2005, 16:11

Hi!

Ich weiß nicht obs wirklich schneller ist, aber kürzer:

Code: Alles auswählen

...
for char in text:
    if char in chars:
        self.text += char
...
Gruß, maw
raist1314
User
Beiträge: 52
Registriert: Dienstag 21. September 2004, 06:58
Wohnort: Adelzhausen
Kontaktdaten:

Freitag 15. April 2005, 17:51

Ich mein, dein Problem ist ein Fall für eine Baumstruktur. Nachzulesen unter: http://www.ibiblio.org/obp/thinkCSpy/chap20.htm

Sebastian
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Freitag 15. April 2005, 20:59

Danke für die Antworten.
Ich werde es mir ansehen, wenn ich wieder am Desktop Rechner sitze
TUFKAB – the user formerly known as blackbird
BlackJack

Sonntag 17. April 2005, 00:37

blackbird hat geschrieben:Wie kann ich die For Schleifen durch etwas Schnelleres ersetzen?
Das lässt sich mit der `translate()` Methode auf Zeichenketten sicher schneller bewerkstelligen. Die Argumente für die Methode müsste man am Anfang einmal vorbereiten -- für den ersten Parameter einfach eine Zeichenkette die alle Bytewerte von 0 bis 255 enthält und für den zweiten Parameter eine Zeichenkette die alle Zeichen enthält, die Du nicht haben möchtest.
Antworten