需求:给定一个字符串,计算并返回每个字母出现的次数。问题分析:依次判断字符串s中的每个字母i是否在字典d中,如果不在,那么字典新增一个键值对,并将值赋为1,如果在,那么将原来键i的值加上1。代码如下:python def count_letters(s):d = {} for i in s:if i in d:d[i] += 1 else...
Python:计算字符串中每个字母出现的次数
需求:给定一个字符串,计算并返回每个字母出现的次数。
问题分析:依次判断字符串s中的每个字母i是否在字典d中,如果不在,那么字典新增一个键值对,并将值赋为1,如果在,那么将原来键i的值加上1。
代码如下:
python
def count_letters(s):
d = {}
for i in s:
if i in d:
d[i] += 1
else:
d[i] = 1
return d
运行结果如下:
可以看到生成的字典d并没有按照字母的顺序,也没有按照‘值’的顺序排列。
如果需要按照‘值’的顺序降序排列,就可以看出那些字母使用频率较高,代码如下:
python
def sort_by_value(d):
return sorted(d.items(), key=lambda x: x[1], reverse=True)
字典有items()方法,用于返回字典的全部‘键值对’,并且是以列表嵌套元组的形式返回。
key = lambda x : x[1]表示对列表进行排序的依据是‘值’。x是形参,可以用任意字母代替,表示列表中的元组。x[1],表示元组的第2个元素,即‘值’。
参考资料:2024-08-15