返回特定字符出现次数最多的字符串

时间:2012-10-24 10:28:35

标签: python

给定一个像“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”

2 个答案:

答案 0 :(得分:8)

类似的内容:将max()str.split()一起使用:

>>> strs= "abbbd cdda cbaa"
>>> max(strs.split(),key=lambda x:x.count("b"))
'abbbd'

答案 1 :(得分:0)

collections库包含有用的类Counter,该类也可用于计算集合中最常见的元素。

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

请注意,该参数指定要返回的元素数(从最常见到最不常见)-在这种情况下,仅需要最常见的元素。