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选择排序算法的实现代码
Nov 21 Python
Python使用asyncio包处理并发详解
Sep 09 Python
python微信跳一跳系列之色块轮廓定位棋盘
Feb 26 Python
python实现坦克大战游戏 附详细注释
Mar 27 Python
Python Django实现layui风格+django分页功能的例子
Aug 29 Python
Django 请求Request的具体使用方法
Nov 11 Python
django 框架实现的用户注册、登录、退出功能示例
Nov 28 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
Nov 29 Python
PyQt5多线程刷新界面防假死示例
Dec 13 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
如何实现更换Jupyter Notebook内核Python版本
May 18 Python
pytorch 如何使用batch训练lstm网络
May 28 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 date函数参数详解
2006/11/27 PHP
php自动获取关键字的方法
2015/01/06 PHP
点图片上一页下一页翻页效果
2008/07/09 Javascript
JS 分号引起的一段调试问题
2009/06/18 Javascript
Prototype Selector对象学习
2009/07/23 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
bootstrap导航、选项卡实现代码
2016/12/28 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
朴素贝叶斯算法的python实现方法
2014/11/18 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
python调用java的jar包方法
2018/12/15 Python
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
戴森英国官网:Dyson英国
2019/05/07 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
旷课检讨书1000字
2014/02/14 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
Redis Lua脚本实现ip限流示例
2022/07/15 Redis