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中的__new__与__init__魔术方法理解笔记
Nov 08 Python
Python中的localtime()方法使用详解
May 22 Python
Python基于checksum计算文件是否相同的方法
Jul 09 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
Jul 15 Python
Python中一行和多行import模块问题
Apr 01 Python
Python实现深度遍历和广度遍历的方法
Jan 22 Python
python绘制地震散点图
Jun 18 Python
十分钟搞定pandas(入门教程)
Jun 21 Python
Django之PopUp的具体实现方法
Aug 31 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
Python实现初始化不同的变量类型为空值
Jun 02 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
Dec 24 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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
关于php curl获取301或302转向的网址问题的解决方法
2011/06/02 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
JavaScript 给汉字排序实例代码
2008/06/28 Javascript
javascript 类方法定义还是有点区别
2009/04/15 Javascript
Exjs 入门篇
2010/04/07 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
node.js基于express使用websocket的方法
2017/11/09 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
2018/08/16 Javascript
setTimeout与setInterval的区别浅析
2019/03/23 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
django 中QuerySet特性功能详解
2019/07/25 Python
Python hmac模块使用实例解析
2019/12/24 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
优秀员工获奖感言
2014/03/01 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
社团招新宣传语
2015/07/13 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书
担保书怎么写 ?
2019/04/22 职场文书