ホームページ  >  記事  >  バックエンド開発  >  Python 文字列接続を使用する 3 つの方法とその効率性、および適用可能なシナリオの詳細な紹介

Python 文字列接続を使用する 3 つの方法とその効率性、および適用可能なシナリオの詳細な紹介

高洛峰
高洛峰オリジナル
2017-03-19 15:27:161384ブラウズ

python文字列連結には、一般に 3 つの方法があります:

方法 1: プラス記号 (+) を使用して直接接続演算子

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

方法 2: 結合方法

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

方法 3:

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

を置換する3 つの方法の違いについて話しましょう

方法 1 はシンプルで直接使用できますが、インターネット上の多くの人がこの方法は効率が悪いと言っています

Python で文字列の連結に + を使用するのが非効率である理由は、次のとおりです。 Python の文字列は不変型です。+ を使用して 2 つの文字列を接続すると、新しい文字列が生成されます。連続した文字列が多数追加される場合は、再度メモリを適用する必要があります。 +d+e+f+...)、効率が低いのは避けられません

方法 2 は使用方法が少し複雑ですが、複数のキャラクターを接続する場合に効率的であり、メモリ アプリケーションは 1 つだけになります。そして、リストの文字を接続する場合は、この方法を最初の選択肢にする必要があります

方法 3: 文字列の書式設定、この方法は非常に一般的に使用されます。私もこの方法をお勧めします

次の実験は、文字列を説明するために使用されます。接続効率の問題。

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

実験 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()

結果:

0.641695976257
0.341440916061

実験 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()

結果:

0.0265691280365
0.0522091388702

上記 2 つの実験の唯一の違いは、文字列の連結数です。

結論: プラス記号接続の効率が低いのは、複数の文字列が連続して接続されている場合に発生します。接続数が少ない場合、プラス記号接続の効率は結合接続よりも高くなります。

以上がPython 文字列接続を使用する 3 つの方法とその効率性、および適用可能なシナリオの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。