中文字符频率统计python_python统计字符串出现最多的字母及其出现次数

统计字符串出现最多的字母及其出现次数

另外如果次数相同按字母顺序排序。

方法1

可以使用自定义键对c.most_common()进行排序,该键首先考虑频率的降序,然后考虑字母的降序(请注意lambda x: (-x[1], x[0]) ):

from collections import Counter

def ordered_letters(s, n=3):

c = Counter(s.replace(' ', ''))

top_n = sorted(c.most_common(), key=lambda x: (-x[1], x[0]))[:n]

for i, t in enumerate(top_n):

c, f = t

if i == 0: print('1st most frequent', c + '.', 'Appearances:', f)

elif i == 1: print('2nd most frequent', c + '.', 'Appearances:', f)

elif i == 2: print('3rd most frequent', c + '.', 'Appearances:', f)

else: print(str(i + 1) + 'th most frequent', c + '.', 'Appearances', f)

sent = "china construction bank"

ordered_letters(sent, 5)

# 1st most frequent n. Appearances: 4

# 2nd most frequent c. Appearances: 3

# 3rd most frequent a. Appearances: 2

# 4th most frequent i. Appearances 2

# 5th most frequent o. Appearances 2

方法2

常规方式对Counter的元组进行排序, 但第一个参数-count本身被取反。 这将产生一个反向列表,但第二个元组元素将按字母顺序排序。 然后取最后n个项目。

from collections import Counter

ordinal = lambda n: "%d%s" % (n,"tsnrhtdd"[(n/10%10!=1)*(n%10<4)*n%10::4])

def ordered_letters(s, n=3):

ctr = Counter(c for c in s if c.isalpha())

ctr = sorted(ctr.items(), key=lambda x: (-x[1], x[0]))[:n]

for index,value in enumerate(ctr):

print "{:s} most frequent: '{:}'. Appearances: {:}".format(ordinal(index+1),value[0],value[1])

s = "achina aconstruction banck"

ordered_letters(s, n=3)

结果:

1st most frequent: 'a'. Appearances: 4

2nd most frequent: 'c'. Appearances: 4

3rd most frequent: 'n'. Appearances: 4

要想成为python这领域的高手,必须了解和弄懂python常见问题。要我们来进行python高手修炼吧。或者你有更好的问题可以留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#float取小数点后两位_C# 保留小数点后两位(方法总结)

最简单使用: float i=1.6667f; string show=i.ToString("0.00"); //结果1.67(四舍五入) 其他类似方法: string show=i.ToString("F");//"F2","f" 不区分大小写 string show=String.Format("{0:F}",i);//也可以为F2,或者&q…

Java 9中的进程处理

一直以来&#xff0c;用Java管理操作系统进程都是一项艰巨的任务。 这样做的原因是可用的工具和API较差。 老实说&#xff0c;这并非没有道理&#xff1a;Java并非出于此目的。 如果要管理OS进程&#xff0c;则可以使用所需的Shell&#xff0c;Perl脚本。 对于面临更复杂任务的…

拼音缩写是啥意思_NMSL?AWSL?这些拼音缩写到底是啥意思?

我绝对没有在骂你们&#xff0c;我只是单纯的举个例子而已。我们在网上冲浪时经常可以看到这些几个字母组成的拼音缩写&#xff0c;对于知道这些梗的人一眼就能GET到&#xff0c;但对于不明白的人来说猜来猜去也猜不出啥意思。所以今天就来给大家科普几个经常出现的拼音缩写&am…

python利用自动识别写模块_序章:资料预处理(python3.6 可用fortran unformatted sequencial data读取模块)...

首先我只是一个接触Python约半年的菜鸟&#xff0c;开这一个专栏的目的主要是记录自己所学&#xff0c;以及实践的一些有用的东西&#xff0c;顺便分享一些自己写的公用代码段以方便具有同样想法的朋友。 既然是序章我就多写一些吧&#xff0c;我本人对人工智能在气象方面的应用…

python自然场景文字识别_chineseocr

本项目基于yolo3 与crnn 实现中文自然场景文字检测及识别master分支将保留一周&#xff0c;后续app分支将替换为master实现功能文字方向检测 0、90、180、270度检测(支持dnn/tensorflow)支持(darknet/opencv dnn /keras)文字检测,支持darknet/keras训练不定长OCR训练(英文、中英…

python蟒蛇代码_011 实例2-Python蟒蛇绘制

一、"Python蟒蛇绘制"问题分析 1.1 Python蟒蛇绘制 用程序绘制一条蟒蛇 貌似很有趣&#xff0c;可以来试试 先学会蟒蛇绘制&#xff0c;再绘朵玫瑰花送给TA 设计蟒蛇的基本形状&#xff1a;问题1: 计算机绘图是什么原理&#xff1f; 一段程序为何能够产生窗体&#x…

java知识回顾_Java – 2012年回顾和未来预测

java知识回顾这篇文章将重点讨论2012年发生的大小事件&#xff0c;并展望2013年的一些未来预测。其中一些预测将是诚实的猜测&#xff0c;而另一些则将是诚实的猜测。 好吧&#xff0c;只要说我的“恶魔般”的一面就已经接管了。 因此&#xff0c;我们无需再讨论Java的2012年了…

redis 能不能监听特定的key失效_php监听redis key失效触发回调事件

订单超时、活动过期解决方案&#xff1a;php监听redis key失效触发回调事件Redis 的 2.8.0 版本之后可用&#xff0c;键空间消息(Redis Keyspace Notifications)&#xff0c;配合 2.0.0 版本之后的 SUBSCRIBE就能完成这个定时任务的操作了&#xff0c;定时的单位是秒。1.我们先…

bjd luts_BJD娃娃背后的圈层文化:一个“成品娃”拍出22万元天价!

■ 作者 黑马君 | 黑马品牌(ID&#xff1a;heimapinpai)现如今“Z世代”已经成为品牌营销中不可忽略的一个关键词&#xff0c;作为消费升级浪潮的主力军&#xff0c;他们早已成为品牌重点目标人群。与90后、80后不同&#xff0c;Z世代成长于互联网迅猛发展的时代&#xff0c;追…

javaweb 需要对表格建立实体类吗_如何采用java界面编程建立一个表格

5.总体代码&#xff1a;为了便于大家复制&#xff0c;下面给出完整的程序代码&#xff0c;如下&#xff1a;package ArrayCreateTable;import javax.swing.table.*;import java.awt.BorderLayout;import java.awt.GridLayout;import javax.swing.*;public class ArrayCreateTab…

qtcreator版本_【IDE】ROS开发环境之Qt Creator的安装与配置

可以用于ROS开发的IDE很多(可以参考【工具合辑】ROS工程师都在用什么IDE开发呢&#xff1f;用哪种IDE开发更加高效呢&#xff1f; )&#xff0c;ROS的调试依赖环境变量&#xff0c;与外部程序有通讯&#xff0c;因此要求启动IDE的时候加载ROS环境参数&#xff0c;其他方面并无太…

基本API速率限制

您可能正在开发某种形式的&#xff08;Web / RESTful&#xff09;API&#xff0c;并且如果它是面向公众的&#xff08;甚至是内部的&#xff09;&#xff0c;通常您希望以某种方式对其进行速率限制。 即&#xff0c;限制一段时间内执行的请求数&#xff0c;以节省资源并防止滥用…

无人值守安装之cdrom_无人值守安装

第一阶段项目内容&#xff1a;内容配置PXEDHCPvsftp&#xff0c;实现客户端网络安装linux操作系统阶段目的&#xff1a;目的是让你体验如何通过网络引导&#xff0c;安装redhat系统&#xff0c;解决了很多时候没有光驱&#xff0c;却需要装系统的需求。步骤&#xff1a;服务器端…

python函数定义中参数列表里的参数是_python函数参数中的/和*是什么意思?

在python3.8之后函数参数中允许出现/和*号&#xff0c;/用来指明某些函数形参必须使用位置参数而非关键字参数的形式&#xff0c;*出现在函数参数中第一种含义可以表示为可变参数&#xff0c;一般写作*args&#xff1b;对于单独出现在参数中的*参数&#xff0c;则表示&#xff…

python属性和方法的区别_Python中几种属性访问的区别

起步 python的提供一系列和属性访问有关的特殊方法&#xff1a;__get__, __getattr__, __getattribute__, __getitem__ 。本文阐述它们的区别和用法。 属性的访问机制 一般情况下&#xff0c;属性访问的默认行为是从对象的字典中获取&#xff0c;并当获取不到时会沿着一定的查找…

rootfs 制作ubuntu_为n1制作aarcm64/arm64 ubuntu rootfs系统

安装debootstrap和qemu-user-static&#xff1a;apt install apt-transport-https qemu qemu-user-static binfmt-support debootstrap构建ubuntu 18.04系统&#xff0c;基础包为minbase&#xff0c;使用清大的源&#xff1a;qemu-debootstrap --arch arm64 --variantminbase -…

java线程死锁_Java并发:隐藏线程死锁

java线程死锁大多数Java程序员熟悉Java线程死锁概念。 它本质上涉及2个线程&#xff0c;它们彼此永远等待。 这种情况通常是平面&#xff08;同步&#xff09;或ReentrantLock&#xff08;读或写&#xff09;锁排序问题的结果。 Found one Java-level deadlock:"pool-1-t…

空间滤波_第三章 灰度变换与空间滤波-(六)锐化空间滤波器之非锐化掩蔽

知识使人自由&#xff0c;印刷术使知识自由。按照书中的顺序&#xff0c;我们插入一章非微分模式下的锐化的方法&#xff0c;非锐化掩蔽。这种方法在印刷术和出版界已经用了好多年了&#xff0c;具体的过程&#xff1a;模糊原图像从原图像中减去模糊图像&#xff08;产生的差值…

python gui编程 从入门到项目实战_python GUI编程 QT5开发项目实战

目录&#xff1a;├─01-PyQT简介及优势├─02-PyQT5开发环境搭建├─03-PyQT5应该学什么├─04-PyQT5库结构├─05-PyQT5程序基本结构分析├─06-PyQT5-Pycharm活动模板设置├─07-PyQT5程序基本结构-面向对象版本├─08-PyQT5-控件初体验及学习思路├─09-PyQT5-Object-对象的…

五分钟的JShell

这篇文章建立在我的My Java 9顶级功能文章的基础上&#xff0c;通过对这些功能的深入研究。 在这里&#xff0c;我们向您展示如何在五分钟内学习jshell并改善Java 9开发经验。 入门 假设您已经下载并安装了Java 9&#xff0c;则可以通过键入以下内容启动Shell&#xff1a; js…