python统计一个文本中重复行数的方法


Posted in Python onNovember 19, 2014

本文实例讲述了python统计一个文本中重复行数的方法。分享给大家供大家参考。具体实现方法如下:

比如有下面一个文件
2
3
1
2
我们期望得到
2,2
3,1
1,1

解决问题的思路:

出现的文本作为key, 出现的数目作为value,然后按照value排除后输出
最好按照value从大到小输出出来,可以参照:

in recent Python 2.7, we have new OrderedDict type, which remembers the order in which the items were added.

>>> d = {"third": 3, "first": 1, "fourth": 4, "second": 2}

>>> for k, v in d.items():

...     print "%s: %s" % (k, v)

...

second: 2

fourth: 4

third: 3

first: 1

>>> d

{'second': 2, 'fourth': 4, 'third': 3, 'first': 1}To make a new ordered dictionary from the original, sorting by the values:

>>> from collections import OrderedDict

>>> d_sorted_by_value = OrderedDict(sorted(d.items(), key=lambda x: x[1]))The OrderedDict behaves like a normal dict:

>>> for k, v in d_sorted_by_value.items():

...     print "%s: %s" % (k, v)

...

first: 1

second: 2

third: 3

fourth: 4

>>> d_sorted_by_value

OrderedDict([('first': 1), ('second': 2), ('third': 3), ('fourth': 4)])

代码如下:
#coding=utf-8

import operator

f = open("f.txt")

count_dict = {}

for line in f.readlines():

    line = line.strip()

    count = count_dict.setdefault(line, 0)

    count += 1

    count_dict[line] = count

sorted_count_dict = sorted(count_dict.iteritems(), key=operator.itemgetter(1), reverse=True)

for item in sorted_count_dict:

    print "%s,%d" % (item[0], item[1])

补充说明:
1. python的dict对象的两个方法:

items方法将所有的字典项以列表的方式返回, 这些列表项中每一项都来自于(键, 值)
iteritems方法与items的作用大致相同, 但是返回一个迭代器对象而不是列表

2. python的内建函数sorted

>>> help(sorted)

Help on built-in function sorted in module __builtin__:

sorted(...)

    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
总结网络IO模型与select模型的Python实例讲解
Jun 27 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
Jul 02 Python
Python 自动化表单提交实例代码
Jun 08 Python
Django进阶之CSRF的解决
Aug 01 Python
Python在for循环中更改list值的方法【推荐】
Aug 17 Python
对Python中的条件判断、循环以及循环的终止方法详解
Feb 08 Python
详解Python字典的操作
Mar 04 Python
Python for循环及基础用法详解
Nov 08 Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 Python
python的dict判断key是否存在的方法
Dec 09 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 Python
python通过zlib实现压缩与解压字符串的方法
Nov 19 #Python
python判断字符串是否纯数字的方法
Nov 19 #Python
python使用any判断一个对象是否为空的方法
Nov 19 #Python
python编写暴力破解FTP密码小工具
Nov 19 #Python
用python读写excel的方法
Nov 18 #Python
kNN算法python实现和简单数字识别的方法
Nov 18 #Python
决策树的python实现方法
Nov 18 #Python
You might like
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
jquery 批量上传图片实现代码
2010/01/28 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
javascript作用域链与执行环境详解
2017/03/25 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
教师师德教育的自我评价
2013/10/31 职场文书
人力资源专员岗位职责
2014/01/30 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
珠宝店促销方案
2014/03/21 职场文书
体育教师求职信
2014/05/24 职场文书
企业党员一句话承诺
2014/05/30 职场文书
小学生清明节演讲稿
2014/09/05 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
12.4法制宣传日标语
2014/10/08 职场文书
Python 实现Mac 屏幕截图详解
2021/10/05 Python