【Python】利用count函数求list中每个元素出现的次数,求众数的改进
2015-12-14 16:45
756 查看
在《【Python】利用setdefault函数实现dict的转置(key与value对互换),统计value出现的次数》(点击打开链接)中介绍过,如何统计dict中相同value的key的出现次数。本文介绍如何利用list自带的count函数,来统计list中每个元素出现的次数。
具体代码如下:
arr_appear=dict((a,arr.count(a)) for a in arr);
是的,就一行,其中arr_appear是一个dict,arr是要统计的list。
如下代码:
# -*-coding:utf-8-*-
arr = [1, 2, 3, 2, 3, 1, 4];
arr_appear = dict((a, arr.count(a)) for a in arr);
print arr_appear;
运行结果如下:
完成了一个求list中每个元素出现的次数的功能,返回一个dict,这个dict的key是list本身的元素,value是出现的次数。
本来arr.count(a),只是返回该元素的出现次数,这里只是在遍历这个list的同时,构造一个相应dict。
有了如上的理论,我们可以对《【Python】不用numpy用纯python求极差、平均数、中位数、众数与方差,python的打印到控制台》(点击打开链接)中介绍过,求众数的方法进行改造,具体的代码如下:
# -*-coding:utf-8-*-
# 众数
def get_mode(arr):
mode = [];
arr_appear = dict((a, arr.count(a)) for a in arr); # 统计各个元素出现的次数
if max(arr_appear.values()) == 1: # 如果最大的出现为1
return; # 则没有众数
else:
for k, v in arr_appear.items(): # 否则,出现次数最大的数字,就是众数
if v == max(arr_appear.values()):
mode.append(k);
return mode;
arr = [1, 2, 3, 2, 3, 1, 4];
print get_mode(arr);
运行的结果如下:
具体代码如下:
arr_appear=dict((a,arr.count(a)) for a in arr);
是的,就一行,其中arr_appear是一个dict,arr是要统计的list。
如下代码:
# -*-coding:utf-8-*-
arr = [1, 2, 3, 2, 3, 1, 4];
arr_appear = dict((a, arr.count(a)) for a in arr);
print arr_appear;
运行结果如下:
完成了一个求list中每个元素出现的次数的功能,返回一个dict,这个dict的key是list本身的元素,value是出现的次数。
本来arr.count(a),只是返回该元素的出现次数,这里只是在遍历这个list的同时,构造一个相应dict。
有了如上的理论,我们可以对《【Python】不用numpy用纯python求极差、平均数、中位数、众数与方差,python的打印到控制台》(点击打开链接)中介绍过,求众数的方法进行改造,具体的代码如下:
# -*-coding:utf-8-*-
# 众数
def get_mode(arr):
mode = [];
arr_appear = dict((a, arr.count(a)) for a in arr); # 统计各个元素出现的次数
if max(arr_appear.values()) == 1: # 如果最大的出现为1
return; # 则没有众数
else:
for k, v in arr_appear.items(): # 否则,出现次数最大的数字,就是众数
if v == max(arr_appear.values()):
mode.append(k);
return mode;
arr = [1, 2, 3, 2, 3, 1, 4];
print get_mode(arr);
运行的结果如下:
相关文章推荐
- 测试开发Python培训:模拟登录新浪微博-技术篇
- python之记录一次内存泄露
- 数据科学家必知必会的7款Python工具,你会几个?
- 我的第一个基于python的socket程序
- 大数据全栈式开发语言——Python
- python基础教程共60课-第40课用文件保存游戏2
- 测试开发Python培训:模拟登录新浪微博-技术篇 2
- 测试开发Python培训:模拟登录新浪微博-技术篇
- 测试开发Python培训:抓取新浪微博抓取数据-技术篇
- 通过python构建集中式的病毒扫描机制
- 【python】python实例集<二>
- python基础教程共60课-第39课用文件保存游戏1
- 用python在hadoop上运行wordcount
- spark+python学习笔记感想
- 测试开发Python培训:自动发布新浪微博-技术篇
- [LeetCode]题解(python):070-Climbing Stairs
- [LeetCode]题解(python):069-Sqrt(x)
- [从头学python] 第05节 字符串模块string
- 测试开发Python培训:抓取新浪微博评论提取目标数据-技术篇
- 老李分享:开发python的unittest结果输出样式