ホームページ  >  記事  >  バックエンド開発  >  Python で文字列連結を実装する 3 つの方法と、その効率性と適用可能なシナリオの詳細な説明

Python で文字列連結を実装する 3 つの方法と、その効率性と適用可能なシナリオの詳細な説明

高洛峰
高洛峰オリジナル
2017-02-11 13:00:261563ブラウズ

この記事では、主に Python での文字列接続の 3 つの方法、その効率、および適用可能なシナリオの詳細な説明を紹介します。一定の参考価値があり、興味のある友人は参照できます。

Python の文字列連結メソッドには、一般に次の 3 つのメソッドがあります:

メソッド 1: プラス (+) 演算子を介して直接接続する


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


メソッド 2: join メソッド


rrreええ


方法 3:


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


3 つの方法の違いについて話しましょう

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

Python で文字列を接続するために + を使用するのが非効率的である理由は、Python の文字列は不変型であるため、2 つの文字列を接続するために + を使用すると、新しい文字列をメモリに再度適用する必要があります。連続する文字列が多い場合 (a+b+c+d+e+f+...)、効率の低下は避けられません

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

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

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

比較対象: plus接続 VS join接続

Pythonバージョン: python2.7

システム環境: CentOS

実験1:


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


結果:

0.64 1695976257

0.341440916061

実験 2:


# -*- 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.0265691280365

0.0522091388702

上記の 2 つの実験では、まったく異なる結果が得られました。 2 つの実験の唯一の違いは、文字数です。文字列接続。

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

上記が全体の内容です。この記事が皆さんの学習に役立つことを願っています。また、皆さんが PHP 中国語 Web サイトをサポートしてくれることを願っています。

Python の文字列連結の 3 つの方法とその効率性、適用可能なシナリオの詳細については、PHP 中国語 Web サイトに注目してください。


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