Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in drei Methoden zur Verwendung von Python-String-Verbindungen sowie deren Effizienz und anwendbare Szenarien

Detaillierte Einführung in drei Methoden zur Verwendung von Python-String-Verbindungen sowie deren Effizienz und anwendbare Szenarien

高洛峰
高洛峰Original
2017-03-19 15:27:161383Durchsuche

PythonEs gibt im Allgemeinen drei Methoden für die Zeichenfolgenverkettung:

Methode 1: Direkt über das Pluszeichen (+)OperatorVerbinden

website = 'python' + 'tab' + '.com'

Methode 2: Join-Methode

listStr = ['python', 'tab', '.com'] 
website = ''.join(listStr)

Methode 3: Ersetzen

website = '%s%s%s' % ('python', 'tab', '.com')

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

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

Der Grund, warum die Verwendung von + für die Zeichenfolgenverkettung in Python ineffizient ist, liegt darin, dass Zeichenfolgen in Python ein unveränderlicher Typ sind . Wenn Sie + verwenden, um zwei Zeichenfolgen zu verbinden, wird eine neue Zeichenfolge generiert. Wenn viele aufeinanderfolgende Zeichenfolgen hinzugefügt werden, müssen Sie diese erneut beantragen ...), eine geringe Effizienz ist unvermeidlich

Methode 2 ist etwas kompliziert zu verwenden, aber sie ist effizient, wenn mehrere Zeichen verbunden werden und es nur eine Speicheranwendung gibt. Und wenn Sie die Zeichen der Liste verbinden, muss diese Methode die erste Wahl sein

Methode 3: Zeichenfolgenformatierung, diese Methode wird sehr häufig verwendet, ich empfehle diese Methode auch

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

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

Experiment eins:

# -*- 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()

Ergebnis:

0.641695976257
0.341440916061

Experiment zwei:

# -*- 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()

Ergebnis:

0.0265691280365
0.0522091388702

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

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in drei Methoden zur Verwendung von Python-String-Verbindungen sowie deren Effizienz und anwendbare Szenarien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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