python split () vs rsplit () Leistung?

7

Ich habe eine Zeichenfolge in Python. Ich möchte es mit maxsplit = 1 auf dem Trennzeichen teilen, das ziemlich nah am Ende der Zeichenkette ist.

Für z.B.

%Vor%

Wird a.split(",", 1) in Bezug auf die Leistung besser sein als a.rsplit(",",1) ?

    
user1408351 13.01.2014, 23:29
quelle

5 Antworten

18

Nachfolgend finden Sie einen Zeittest mit timeit.timeit zum Vergleichen der Geschwindigkeiten von zwei Methoden:

%Vor%

Wie Sie sehen können, sind sie ungefähr gleichwertig. str.split ist ein paar Sekundenbruchteile schneller, aber das ist wirklich unwichtig. Also, Sie können wählen, welche Methode Sie wollen.

P.S. Obwohl die Methode str.split ist, muss ein Zeichen weniger eingegeben werden. :)

    
iCodez 13.01.2014, 23:32
quelle
4

Zu den vorherigen Antworten hinzufügen, sollte die Verwendung von Split vs rsplit davon abhängen, wo Sie suchen möchten. Beispiel:

%Vor%

Hier suchen Sie nach 1, in diesem Fall ist die Verwendung von rsplit schneller als geteilt, während für die Beispiele in den vorherigen Antworten die Aufteilung schneller ist.

    
Kishore Avineni 14.09.2014 16:52
quelle
3

Ich bin super spät dran, aber für jeden, der darüber stolpert, ist partition schneller als split(x, 1) :

%Vor%

Und Sie können die , einfach entfernen, wenn Sie wollen, indem h, _, t = s.rpartition(',') oder so.

    
mVChr 12.09.2016 23:47
quelle
2

Ich denke, es gibt einen kleinen Unterschied zwischen split() und rsplit() : zum Beispiel:

%Vor%

Sie sehen, split() wird verwendet, wenn Sie Strings bei ersten Vorkommen teilen wollen und rsplit() wird verwendet, wenn Sie Strings bei letzten Vorkommen teilen wollen.

    
Dewy Duke 10.01.2018 11:42
quelle
1

Nur zur Ergänzung der @ iCodez-Antwort können Sie einen Timing-Test über die Befehlszeile ausführen:

%Vor%

Also, es ist tatsächlich ein irrelevanter Unterschied.

    
tchuncly 13.01.2014 23:43
quelle

Tags und Links