Ich lerne Python von Grund auf neu. Für dasselbe verwende ich das Buch 'How To Think Like a Computer Scientist'. Abschnitt 7.12 der gleichen behandelt Zeichenklassifizierung und es listet 3 verschiedene Möglichkeiten der Bestimmung, ob ein gegebenes Zeichen (CH) ist in Kleinbuchstaben, wie folgt:Welche davon ist der schnellste Weg, um den Fall eines Charakters zu überprüfen?
1.
def is_lower(ch):
return string.find(string.lowercase, ch) != -1
2.
def is_lower(ch):
return ch in string.lowercase
3.
def is_lower(ch):
return 'a' <= ch <= 'z'
ich dachte, welche dieser w wäre der schnellste für die Verarbeitung. Ich kümmere mich nur um die Verarbeitungszeit, nicht um die Speicheranforderungen. Ich vermute, dass es der dritte ist, weil in den ersten beiden Fällen die gesamte Zeichenfolge bis zum Ende verarbeitet werden muss, um herauszufinden, ob der Charakter überhaupt vorhanden ist, während im dritten Fall nur zwei Vergleiche ausreichen und der Die ganze Zeichenfolge muss nicht verarbeitet werden. So ist meine Vermutung richtig?
Warum testen Sie sie nicht? Führen Sie jede Funktion 1.000.000 Mal aus und messen Sie die verstrichene Zeit. – deepmax
Was verwenden Sie nicht die eingebaute 'ch.islower()'? Nicht müssen Sie Ihre eigenen schreiben. –
@deepmax Ich habe dieses Level noch nicht erreicht, wo ich genau die Zeit messen kann, die eine bestimmte Funktion zur Ausführung benötigt. Theoretisch kann ich zwar die verschiedenen Wege sehr oft durchlaufen und dann den Unterschied messen, aber in diesem Fall sollte auch der Prozessor während aller 3 Testläufe gleich leer sein, und das ist in meinem Fall praktisch nicht möglich. – Hiren