1

「abbbd cdda cbaa」のような文字列が与えられた場合、「b」のような特定の文字の出現頻度が最も高い単語をどのように判断しますか。私の初期コード:

sample = "abbbd cdda cbaa"
sample_splitter = sample.split()
#sample_splitter is now [abbbd, cdda, cbaa]
for word in sample_splitter:
  word.count("b") #this returns the number of occurrences of the char b
  max(word.count("b")) #this will return the highest number

文字の最大数とそれに関連付けられている配列値を関連付ける方法を理解するのに苦労しています。この場合、それは「abbbd」でなければなりません

4

2 に答える 2

8

このようなもの:max()で使用str.split():

>>> strs= "abbbd cdda cbaa"
>>> max(strs.split(),key=lambda x:x.count("b"))
'abbbd'
于 2012-10-24T10:31:06.017 に答える
0

collectionsライブラリには、コレクション内の最も一般的な要素をカウントするためにも使用できる便利なクラスが含まれていますCounter

>>> import collections
>>> sample = "abbbd cdda cbaa"
>>> collections.Counter(sample).most_common(1)
[('a', 4)]

引数は、返される要素の数を指定することに注意してください (最も一般的なものから最も一般的でないものへ)。この場合、最も一般的なものだけが必要です。

于 2020-06-03T09:43:30.907 に答える