Python编程题18--统计字母出现次数并排序
题目
给定一个列表,列表元素仅包含字母,请统计每个字母的出现次数,并按出现次数排序,要求最终返回结果为字典形式。
例如:
给定一个列表:['a', 'a', 'c', 'b', 'd', 'c', 'c', 'c', 'd', 'd']
返回结果:{"c": 4, "d": 3, "a": 2, "b": 1}
实现思路1
- 利用 Python 里的计数器
Counter
,其可用于追踪值的出现次数,并返回一个 Counter 类对象,是字典dict
的子类 - 利用 Python 里的内置函数
sorted()
并结合匿名函数lambda
进行排序,设置reverse=True
表示降序 - 把结果转换为字典
dict
形式返回
注意:sorted() 返回的结果是一个新的列表list ,这里需要转换为字典格式再返回
代码实现
# coding=utf-8 #__author:chenxiaomeng #date:2021/11/17 #题目:给定一个列表,列表元素仅包含字母,请统计每个字母的出现次数,并按出现次数排序,要求最终返回结果为字典形式。 #给定一个列表:['a', 'a', 'c', 'b', 'd', 'c', 'c', 'c', 'd', 'd'] #返回结果:{"c": 4, "d": 3, "a": 2, "b": 1} from collections import Counter def CountNum(str_list): temp=Counter(str_list) res_list=sorted(temp.items(),key=lambda x:x[1],reverse=True) res_dict=dict(res_list) print(res_dict) if __name__ == '__main__': str_list = ["a", "a", "c", "b", "d", "c", "c", "c", "d", "d"] CountNum(str_list)
实现思路2
- #实现方法2:首先将list存为set集合,然后计算set中各元素key的出现次数value保存到字典中,最后根据字典dict的value进行排序。 #set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
代码实现
#实现方法2:首先将list存为set集合,然后计算set中各元素key的出现次数value保存到字典中,最后根据字典dict的value进行排序。 #set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。 from collections import Counter def CountNum(str_list): temp_set=set(str_list) print(temp_set) temp_dict={item:str_list.count(item) for item in temp_set} print(temp_dict) res_list=sorted(temp_dict.items(),key=lambda x:x[1],reverse=True) res_dict=dict(res_list) print(res_dict) if __name__ == '__main__': str_list = ["a", "a", "c", "b", "d", "c", "c", "c", "d", "d"] CountNum(str_list)
声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/
如出现转载未声明 将追究法律责任~谢谢合作