2017-02-21 1 views
0

私はPythonと学習の初心者です。与えられたように、herecount()メソッドは、文字列で使用すると、文字列中のサブ文字列の出現回数を与えます。String.count()はどのように機能しますか?

だから、私が行うとき:

多分 'ANAは' 'BANANA' に2回出現するように、出力は2でなければなりませんが、 count戻り1.

は、誰かがこれを説明していただけますか、期待

'BANANA'.count('ANA')

私は何か誤解しています。

正しい方向に指摘してください。

+1

非重複?ドキュメントをお読みください。 –

+0

'ANA'の最初の出現で2番目の' A'は再利用されません – WhatsThePoint

+0

ソースコードはhttps://hg.python.org/cpython/file/tip/Objeshortで見つけることができます。重複しない文字列の固有の出現。 – Jaco

答えて

9
>>> help(str.count) 
Help on method_descriptor: 

count(...) 
    S.count(sub[, start[, end]]) -> int 

    Return the number of non-overlapping occurrences of substring sub in 
    string S[start:end]. Optional arguments start and end are 
    interpreted as in slice notation. 

ノンオーバーラップに注目してください。

+0

重複を数える方法はありますか? – Mohan

+0

Philippによって提唱されている正規表現を見てみましょう。 –

6

正規表現を使用して検索することができます。モジュールからのfindAll機能を使用し再重なって出現箇所に、ここ2

または利回り3を得

import re 
len(re.findall('(?=ANA)', 'BANANA')) 

を見つけるために:

import re 
len(re.findall('(?=ANA)', 'BANANAANA')) 
+0

ライブラリを使用せずにこれを行う簡単な方法はありますか? – Mohan

+4

ライブラリを読み込めませんか?そのpythonのポイント。そして、確かにエキゾチックな図書館はありません。 – Philipp

+0

また、 're'は標準ライブラリの一部ですので、私の意見では(少なくとも外部ライブラリを使用するのではなく)"ライブラリを使う "のようなものではありません。 – MSeifert

関連する問題