python 对给定可迭代集合统计出现频率,并排序的方法
给定一个可迭代sequence,对其中的值进行出现次数统计:
方法1:
def get_counts(sequence): counts = {} for x in sequence: if x in counts: counts[x] += 1 else: counts[x] = 1 return counts
方法2:
利用python中内置的collections
from collections import defaultdict def get_counts2(sequence): counts = defaultdict(int) #所有的值均会被初始化为0 for x in sequence: counts[x] +=1 return counts
方法3:
from collections import Counter counts = Counter(sequence) #其中可以用counts.most_common(10)对出现最多的十个倒序排列
然后对得到的统计排序:
def top_count(count_dic, n=10): #默认取最大的n=10个值 value_key_pairs = [(count,data) for counts,data in cout_dict.items()] value_key_pairs.sort() #sorted(value_key_pairs) 两者均可 return value_key_pairs[-n:]
以上这篇python 对给定可迭代集合统计出现频率,并排序的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
python random从集合中随机选择元素的方法
如下所示: list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] slice = random.sample(list, 5) #从list中随机获取5个元素,作为一个片断返回 print slice print list #原有序列并没有改变. print random.randint(12, 20) #生成的随机数n: 12 <= n <= 20 print random.randint(20, 20) #结果永远是20 #print random.randint(
-
Python爬虫实战之12306抢票开源
今天就和大家一起来讨论一下python实现12306余票查询(pycharm+python3.7),一起来感受一下python爬虫的简单实践 我们说先在浏览器中打开开发者工具(F12),尝试一次余票的查询,通过开发者工具查看发出请求的包 余票查询界面 可以看到红框框中的URL就是我们向12306服务器发出的请求,那么具体是什么呢?我们来看看 https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date=2019-01-2
-
只需7行Python代码玩转微信自动聊天
本代码将用到wxpy模块,使用前请确保已成功安装.我喜欢命令行安装: 接着就可以开始码啦: 开头的红色部分为注释,去掉仍然可以运行,有效代码仅七行,是不是很简洁?赶紧呼朋唤友试一试吧-- 比人还会聊天的图灵机器人-- 群聊也十分积极-- 但可怕的是,它竟然和公众号们聊了一百多条消息-- 如果,恰巧,这时候领导也给你发了一条消息-- 显然,Python应该做到指定聊天对象: 指定聊天的群: 甚至指定群里的BOSS: 再也不用担心错失老板的重要信息了-- 嗯,这个操作是不是和"已读"一样遭
-
正确理解Python中if __name__ == '__main__'
在Python,我们经常会编写 if __name__ == '__main__' 这么一段代码,这段代码该怎么来理解? 这段代码的功能理解如下: 一个python的文件有两种使用的方法: 作用一,直接作为脚本执行. 作用二,import到其他的python脚本中被调用(模块重用)执行. if __name__ == '__main__': 的作用就是控制这两种情况执行代码的过程,在if __name__ == '__main__': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执
-
python集合比较(交集,并集,差集)方法详解
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in set, len(set),和 for x in set.作为一个无序的集合,sets不记录元素位置或者插入点.因此,sets不支持 indexing, slicing, 或其它类序列(sequence-l
-
python判断字符串或者集合是否为空的实例
最近在看<Effective Python>,里面提到判断字符串或者集合是否为空的原则,原文如下: Don't check for empty values (like [] or '') by checking the length (if len(somelist) == 0). Use if not somelist and assume empty values implicity evaluate to False. 意即,不要通过取字符串或者集合的长度来判断是否为空,而是要用not
-
Python字典中的键映射多个值的方法(列表或者集合)
一个字典就是一个键对应一个单值的映射.如果你想要一个键映射多个值,那么你就需要将这多个值放到另外的容器中, 比如列表或者集合里面.比如,你可以像下面这样构造这样的字典: d = { 'a' : [1, 2, 3], 'b' : [4, 5] } e = { 'a' : {1, 2, 3}, 'b' : {4, 5} } 选择使用列表还是集合取决于你的实际需求.如果你想保持元素的插入顺序就应该使用列表, 如果想去掉重复元素就使用集合(并且不关心元素的顺序问题). 你可以很方便的使用 collect
-
Python中的集合介绍
1.集合的定义 集合的元素是不可重复的 s = {1,2,3,1,2,3,4,5} print(s) print(type(s)) s1 = {1} print(s1) print(type(s1)) 集合就算只有一个元素,也是集合,不需要像列表一样,加个逗号 那么如何定义一个空集合 s2 = {} print(type(s2)) s3 = set([]) print(s3) print(type(s3)) 集合的应用(去重) li = [1,2,3,1,2,3] print(list(set(
-
Python并发:多线程与多进程的详解
本篇概要 1.线程与多线程 2.进程与多进程 3.多线程并发下载图片 4.多进程并发提高数字运算 关于并发 在计算机编程领域,并发编程是一个很常见的名词和功能了,其实并发这个理念,最初是源于铁路和电报的早期工作.比如在同一个铁路系统上如何安排多列火车,保证每列火车的运行都不会发生冲突. 后来在20世纪60年代,学术界对计算机的并行计算开始进行研究,再后来,操作系统能够进行并发的处理任务,编程语言能够为程序实现并发的功能. 线程与多线程 什么是线程 一个线程可以看成是一个有序的指令流(完成特定任务
-
Python制作动态字符图的实例
这次我们拿小龙猫来做演示 这里就不必多说了,也就导入几个用到的包: SOURCE_PATH:这个是GIF的路径OUTPUT_PATH:这个是每一帧的存放路径FRAMES_PATH:这个也是每一帧的存放路径,不过是已转为字符画的图片 create_dir() 方法只是用来创建文件夹的,若是存在那便会删掉里面的内容,所以不要放东西进去哦 processImage() 方法是把GIF的每一帧提取出来的,这里面的 img.seek(index) 是对GIF每一帧的索引,由于我也还不知道如何判断GIF总共
随机推荐
- Python解析json文件相关知识学习
- 会员下线加积分,实现原理分享(有时间限制)
- 可以从一台远程服务器运行 SP2 安装程序Install.vbs
- 批处理编程- -介绍
- jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
- 简介JavaScript中的setTime()方法的使用
- python快速查找算法应用实例
- javascript实现的鼠标链接提示效果生成器代码
- ASP.NET Session会导致的性能问题
- JS中==与===操作符的比较
- php 根据url自动生成缩略图并处理高并发问题
- C#中out与ref的区别实例解析
- Django中的Ajax
- 老生常谈jacascript DOM节点获取
- linux使用scp实现服务器A向服务器B传输文件
- Linux下模拟实现进度条实例详解
- VBS教程:函数-IsArray 函数
- js switch case default 的用法示例介绍
- C#实现将javascript文件编译成dll文件的方法
- Java编程发展历史(动力节点Java学院整理)