2016-04-07 5 views
40

:「ABA」は、文字列sで2回発生して"www" .count( "ww")はなぜ2ではなく1を返しますか?私のコードで

>> s = 'abacaba' 
>> s.count('aba') 
>> 2 

は、上記のコードのために私は正しい答えを取得しています。

しかし、次のような場合のために:この場合

>> s = 'www' 
>> s.count('ww') 
>> 1 

私はs.count('ww')2を返すことを期待しています。しかし、それは1を返します。

なぜですか?

答えて

165

docsを読む:

戻り文字列s[start:end]でサブサブストリングの(、非重複)発生の数。開始と終了のデフォルトと負の値の解釈は、スライスの場合と同じです。

"ww"は最初にマッチするので、3番目の "w"から "ww"に一致しません。

+2

この回答は、それと同等の['str.count()'メソッド(https://docs.python.org/2/library/stdtypes)ではなく、廃止された 'string.count()'関数を参照しています。 html#str.count)。 –

34

string.count(s, sub[, start[, end]])

戻りの数(非重複)文字列s内のサブサブの出現[スタート:終了]。開始と終了のデフォルトと負の値の解釈は、スライスの場合と同じです。

ソース:https://docs.python.org/2/library/string.html

+3

この答えは、廃止された 'string.count()'関数を参照していることに注意してください。同等の['str.count()'メソッド](https://docs.python.org/2/library/stdtypes.html# str.count)。 –

9

ちょうどそれが好きだと思うしよう:

この言葉では: "abacaba"、あなたはどのように多くの、非重複 "ABA" の言葉を見ていますか?私は2を見る。そしてまた私は "c"を見る。

この単語のなかで、「www」とはどのくらいですかノンオーバーラップ「ww」の単語がありますか?私は1を見ます。そしてまた私は "w"を見ます。

もっとよく説明するには、表示されているときにインスタンスを削除しているとします。

「abacaba」の場合は「aba」が表示され、削除されます。今すぐ "カバ"があります、あなたは再び "aba"を見てそれを削除します。今は "c"しか得られません。あなたは "aba"を2回見ます。 "www"の場合も同じですが、 "ww"を一度見て削除してください。今あなたは "w"しか見ることができません。あなたは一度だけ "ww"を見ました。

意味があります。

+39

直観は実際には文書を読むための貧弱な代理人です –

+4

それはまた不正確です。 "どのくらいの" ww "言葉が見えますか?" - 私は実際に2と3 "w"を見ます。あなたはそれをもっと良く、より正確に言い換えることができます。 – Maroun

+0

さて、私に説明させてください。あなたが見てインスタンスを削除していると思う。 "abacaba"には "aba"が表示され、それを削除します。今すぐ "カバ"があります、あなたは再び "aba"を見てそれを削除します。今は "c"しか得られません。あなたは "aba"を2回見ます。 "www"の場合も同じですが、 "ww"を一度見て削除してください。今あなたは "w"しか見ることができません。あなたは一度だけ "ww"を見ました。 –

関連する問題