Heim > Backend-Entwicklung > Python-Tutorial > Ausführliche Erläuterung der drei Methoden der Python-String-Verkettung sowie ihrer Effizienz und anwendbaren Szenarien

Ausführliche Erläuterung der drei Methoden der Python-String-Verkettung sowie ihrer Effizienz und anwendbaren Szenarien

高洛峰
Freigeben: 2016-10-17 16:53:24
Original
1631 Leute haben es durchsucht

Im Allgemeinen gibt es drei Möglichkeiten, Python-Strings zu verbinden:

Methode 1: Direkt über den Pluszeichen-Operator ( ) verbinden

website = 'python' + 'tab' + '.com'
Nach dem Login kopieren

Methode 2: Join-Methode

listStr = ['python', 'tab', '.com'] 
website = ''.join(listStr)
Nach dem Login kopieren

Methode 3: Ersetzen

website = '%s%s%s' % ('python', 'tab', '.com')
Nach dem Login kopieren


Lassen Sie uns über die Unterschiede zwischen den drei Methoden sprechen

Methode 1 ist einfach und direkt anzuwenden, aber viele Leute im Internet sagen, dass diese Methode ineffizient ist

Der Grund, warum die Zeichenfolgenverkettung in Python ineffizient ist, liegt darin, dass Zeichenfolgen in Python unveränderliche Typen sind. Wenn zwei Zeichenfolgen verkettet werden, müssen neue Zeichenfolgen generiert werden Da es viele Zeichenfolgen gibt, die kontinuierlich hinzugefügt werden (a b c d e f ...), ist eine geringe Effizienz unvermeidlich


Methode 2, etwas kompliziert in der Anwendung, aber effizient beim Verbinden mehrerer Zeichen , und es wird nur eine Speicheranwendung geben. Und wenn Sie Zeichen in der Liste verketten, muss diese Methode die erste Wahl sein


Methode 3: String-Formatierung, diese Methode wird sehr häufig verwendet und ich empfehle sie auch Verwenden Sie diese Methode


Die folgenden Experimente werden verwendet, um die Effizienz der String-Verkettung zu veranschaulichen.

比较对象:加号连接 VS join连接
python版本: python2.7
系统环境:CentOS
Nach dem Login kopieren

Experiment 1:

# -*- coding: utf-8 -*-
from time import time
def method1():
    t = time()
    for i in xrange(100000):
        s = 'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'+'pythontab'
    print time() - t
def method2():
    t = time()
    for i in xrange(100000):
        s = ''.join(['pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab','pythontab'])
    print time() -t
method1()
method2()
Nach dem Login kopieren

Ergebnis:

0.641695976257
0.341440916061
Nach dem Login kopieren


Experiment 2:

# -*- coding: utf-8 -*-
from time import time
def method1():
    t = time()
    for i in xrange(100000):
        s = 'pythontab'+'pythontab'+'pythontab'+'pythontab'
    print time() - t
def method2():
    t = time()
    for i in xrange(100000):
        s = ''.join(['pythontab','pythontab','pythontab','pythontab'])
    print time() -t
method1()
method2()
Nach dem Login kopieren

Ergebnis:

0.0265691280365
0.0522091388702
Nach dem Login kopieren


Die beiden oben genannten Experimente haben völlig unterschiedliche Ergebnisse. Der einzige Unterschied zwischen den beiden Experimenten ist die Anzahl der String-Verbindungen.

Schlussfolgerung: Die geringe Effizienz der Pluszeichen-Verbindung tritt auf, wenn mehrere Strings kontinuierlich verbunden sind. Wenn die Anzahl der Verbindungen gering ist, ist die Effizienz der Pluszeichen-Verbindung höher als die der Join-Verbindung


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage