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.
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Richtiger Ansatz bei Textüberprüfung

Beitragvon mitsuhiko » 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])

Beitragvon mawe » 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:

Beitragvon raist1314 » 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
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » 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

Re: Richtiger Ansatz bei Textüberprüfung

Beitragvon 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.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], brainstir