给定一个像“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”
答案 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)]
请注意,该参数指定要返回的元素数(从最常见到最不常见)-在这种情况下,仅需要最常见的元素。