python-文件字符分布【get()函数与.sort(key=lambda x:x[0],reverse = False)】
描述
统计附件文件的小写字母a-z的字符分布,即出现a-z字符的数量,并输出结果。
同时请输出文件一共包含的字符数量。
注意输出格式,各元素之间用英文逗号(,)分隔。
答案可能包含a-z共26个字符的分布,如果某个字符没有出现,则不显示,输出顺序a-z顺序。
输入输出示例
仅格式示例,非最终答案。
| 输入 | 输出 | |
| 示例 1 |
|
fo = open("latex.log","r") #打开文件
t =0
lt = {} #创建字典
for item in fo: #遍历fo
for j in item: #统计字符数量
t+=1
if j>='a'and j<='z':
lt[j] = lt.get(j,0)+1#用当前字符j索引字典,若在,次数+1;若不在,加到字典中,赋给当前值为0,+1
items = list(lt.items())#字典转换为列表
print("共{}字符".format(t),end = '')#不换行
items.sort(key=lambda x:x[0],reverse = False)#按第一维[0],以默认的从小到大方式排序,reverse = false 不反转
for item in items:
print(",{}:{}".format(item[0],item[1]),end = '')
其中涉及的知识点
1,.get(<元素>,0) 以 lt.get ( j,0 ) +1为例
对字典lt 索引其中的 j 元素对应的值。
1)若字典lt为空,此时函数的作用为检测并生成新元素,同时对新元素初始化为0,由于遇见了新元素,返回值+1
2)若字典lt不为空,当检测出新元素时遵从1),当再次遇见相同元素时,返回值+1
2,.sort(key=lambda x:x[0],reverse = False)
1)sort() 默认从小到大方式排序
2)key=lambda x:x[0]
x:x[ ]字母可随意修改,排序方式按括号中[ ]里面的维度进行排序
[0]按第一维,[2]按第三维
3)reverse()函数
列表类型操作函数,其结果是直接改变列表本身(节省空间),直接把原来的list改为反转后的列表,返回值为空(None),因此直接引用逆序输出
reverse = false 以默认的方式排序,不反转;reverse = true 反转
#参考答案
f = open("latex.log")
cc = 0
d = {}
for i in range(26):
d[chr(ord('a')+i)] = 0
for line in f:
for c in line:
d[c] = d.get(c, 0) + 1
cc += 1
print("共{}字符".format(cc), end="")
for i in range(26):
if d[chr(ord('a')+i)] != 0:
print(",{}:{}".format(chr(ord('a')+i), d[chr(ord('a')+i)]), end="")
#使用 ord('a')+i 配合 range()函数 可以遍历一个连续的字符表。
python-文件字符分布【get()函数与.sort(key=lambda x:x[0],reverse = False)】的更多相关文章
- python 文件和路径操作函数小结
1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型 print os.listdir('..') 2: os.path.walk( ...
- python文件及路径管理函数
glob模块 说明: 1.glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索, 支持通配符操作 *.?.[] 这三个通配符,*代表0 ...
- python文件之间变量和函数的 获取/调用 的方法
- python 小程序 查找最大的python文件
使用os.path模块方法介绍 1. 扫描标准库目录 I 通过glob模块遍历一个目录下面的所有文件,glob接收shell中常用文件名模式语法:"?"代表任何单个字符,* ...
- python 常用的高阶函数
前言 高阶函数指的是能接收函数作为参数的函数或类:python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率. map() map函数可以把一个迭代对象转换成另一个可迭代对象,不过在pyth ...
- 『Python基础-14』匿名函数 `lambda`
匿名函数和关键字lambda 匿名函数就是没有名称的函数,也就是不再使用def语句定义的函数 在Python中,如果要声匿名函数,则需要使用lambda关键字 使用lambda声明的匿名函数能接收任何 ...
- python记录_day14 内置函数二 迭代 二分法
一.匿名函数 形式: lambda 形参:返回值 lambda表示的是匿名函数. 不需要用def来声明, 一句话就可以声明出一个函数.匿名函数不是说一定没名字,而是他们的名字统一称为“lambda”, ...
- day3--集合、文件操作、字符编码与转换、函数(递归,lambda,filter,map)、字典排序
list1 = set([1, 2, 3, 4, 5, 6, 5, 5, 5])list2 = set([11, 2, 36, 'a', 5, 6, 5, 5, 5])list3 = set([1, ...
- Python文件与函数练习题
练习题 文件处理相关 编码问题 请说明python2 与python3中的默认编码是什么? python2默认是ASCII码,python3默认是utf-8 为什么会出现中文乱码?你能列举出现乱码的情 ...
随机推荐
- CH5501 环路运输(单调栈)
传送门 思路: 遇到一个环,用正常人类的思想就先把环从中间截断然后将其补成2*n长度的链.环上的最小距离换到链上就是i以n/2为半径范围内的点(画图肉眼可见).由于两个点是等价的,所以我们考虑有序对( ...
- Spark 1.5 to 2.1.X
api差异参考官网地址:https://spark.apache.org/docs/2.1.1/sql-programming-guide.html#upgrading-from-spark-sql- ...
- 大数据及hadoop简要概念
大数据 大数据简要概念 指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合.需要新处理模式,才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的信息资产. 大数据作 ...
- Linux c++ vim环境搭建系列(3)——Ubuntu18.04.4编译安装youcompleteme
3. youcompleteme编译安装 参考网址: https://github.com/ycm-core/YouCompleteMe#linux-64-bit 建议不要用这个博客的方法: http ...
- web网页html基础
列表标签 ul:定义一个列表 li:定义列表中的条目 图片标签 Img:用来向网页中插入一张图片 Src:指定图片所在的路径 Width:指定图片宽度 (% px) Height:指定图片高度 (% ...
- Python递归爬取头条用户的所有文章、视频
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...
- POJ 跳蚤
Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长.节目主持人会给该跳蚤发一张卡片.卡片上写有N+1个自然数.其中最后一个是M ...
- Jmeter--Mysql数据库压力测试
前提环境要求:首先下载合适的数据库驱动 传送门:https://mvnrepository.com/artifact/mysql/mysql-connector-java 将下载好的驱动放到Jmete ...
- Neo4J 查找两节点之间的路径
# 两节点之间的所有路径MATCH p=(a)-[*]->(b)RETURN p # a->b 直接连接MATCH p=(a)-[]->(b)RETURN p # a-...> ...
- python 给字典按值排序,同样适合于其他
sorted_items = sorted(dico.items(),key=lambda x:(-x[1],x[0]))