import re
from collections import Counter
text ='aaabbbC CEEEE,EDdD!'# 将字符串转为小写
text = text.lower()# 去掉字符串中的其他符号, 只获取字母
result = re.findall('[a-zA-Z]', text)# 返回值为list
count = Counter(result)# 返回值为字典 {单词:词频} : Counter({'a': 3, 'b': 3, 'c': 3, 'e': 3, 'd': 2})
count_value = count.values()# 获取词频列表 dict_values([3, 3, 3, 3, 2]))
max_value =max(count_value)# 获取最大的词频数 : 3
max_list =[]# 存储最大词频数对应的 单词# 获取最大词频数对应的单词for k,v in count.items():if v == max_value:
max_list.append(k)
max_list =sorted(max_list)
max_list
['e']
其他版本
#version 2import string
defget_max_value(text):
text = text.lower()returnmax(string.ascii_lowercase, key=text.count)
get_max_value(text)
<built-in method count of str object at 0x000002342E078850>
'e'
#version 3from collections import Counter
defget_max_value(text):
count = Counter([x for x in text.lower()if x.isalpha()])
m =max(count.values())returnsorted([x for(x, y)in count.items()if y == m])[0]
get_max_value(text)
'e'
2. lambda 表达式
sum = lambda a,b: a+b
a,b 其实就是传递的两个参数
a+b是一个表达式
sum就是函数名
# 带入key函数中,各个元素返回布尔值,相当于[False, False, False, True, True, True]# key函数要求返回值为True,有多个符合的值,则挑选第一个。max(range(6), key =lambda x : x >3)# 返回大于 3 的第一个值
4
# 带入key函数中, 各个元素返回自身的值, 最大的值为5, 返回5max([3,5,2,1,4,3,0], key =lambda x : x)