4

string.count()Python v2.7.3のドキュメントで非推奨としてリストされているため、を使用せずにこれを行うにはどうすればよいですか?

代わりに何を使うべきかわかりません。

str.count()編集:質問は元々非推奨であると述べていましたが、それは正しくなく誤解を招くものです。説明についてはhttps://stackoverflow.com/a/10385996/966508を参照してください

4

6 に答える 6

16

使用str.count()-非推奨としてリストされていません。

Python 2.7.3Python 3.2.3-どちらも非推奨になることについてのメモはありません)。

>>> "test".count("t")
2

string.count()文字列オブジェクトのメソッドを優先して減価償却されます。

違いは、str.count()は文字列オブジェクトのメソッドであり、はモジュールstring.count()の関数であるということです。string

>>> "test".count("t")
2
>>> import string
>>> string.count("test", "t")
2

後者が前者を支持して非推奨になった(そして3.xで削除された)理由は明らかです。

于 2012-04-30T15:11:36.137 に答える
5

使用len():

>>> len('abcd')
4
于 2012-04-30T15:05:52.800 に答える
2

これは 2.7.3 で正常に動作します

>>> strs='aabbccddaa'
>>> strs.count('a')
4
于 2012-04-30T15:13:57.427 に答える
1

他の方法は

strs.__len__()

于 2013-01-25T03:59:22.760 に答える
1

count を使用せずにこれを行うことができます:

def my_count(my_string, key_char):
    return sum(c == key_char for c in my_string)

結果:

>>> my_count('acavddgaaa','a')
5
于 2012-04-30T22:24:29.593 に答える