python文字列連結には、一般に 3 つの方法があります:
website = 'python' + 'tab' + '.com'
listStr = ['python', 'tab', '.com'] website = ''.join(listStr)
website = '%s%s%s' % ('python', 'tab', '.com')
方法 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 サイトの他の関連記事を参照してください。