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中私有函数调用方法解密
Apr 29 Python
详解Python的Twisted框架中reactor事件管理器的用法
May 25 Python
python和flask中返回JSON数据的方法
Mar 26 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
pyqt5实现俄罗斯方块游戏
Jan 11 Python
8种用Python实现线性回归的方法对比详解
Jul 10 Python
python匿名函数lambda原理及实例解析
Feb 07 Python
Python接口测试get请求过程详解
Feb 28 Python
PyQt5+python3+pycharm开发环境配置教程
Mar 24 Python
.img/.hdr格式转.nii格式的操作
Jul 01 Python
Python threading模块condition原理及运行流程详解
Oct 05 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 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 抽象类的简单应用
2011/09/06 PHP
php 定义404页面的实现代码
2012/11/19 PHP
php封装的验证码类分享
2017/02/26 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
浅谈php调用python文件
2019/03/29 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
2019/09/29 PHP
javascript 继承实现方法
2009/08/26 Javascript
Jquery插件之多图片异步上传
2010/10/20 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
jQuery Tab插件 用于在Tab中显示iframe,附源码和详细说明
2011/06/27 Javascript
Prototype源码浅析 Number部分
2012/01/16 Javascript
uploadify 3.0 详细使用说明
2012/06/18 Javascript
9款2014最热门jQuery实用特效推荐
2014/12/07 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
vue增删改查的简单操作
2017/07/15 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
Python连接mysql数据库及简单增删改查操作示例代码
2020/08/03 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
学生会主席就职演讲稿
2014/01/14 职场文书
财政局个人年终总结
2015/03/03 职场文书
党支部意见范文
2015/06/02 职场文书
写给同事的离职感言
2015/08/04 职场文书
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL