python list使用示例 list中找连续的数字


Posted in Python onJanuary 27, 2014

线上有个需求,格式化,从一堆s1,s100-s199中找出连续的服并且格式化显示出来,如:

神魔:S106-109,s123,s125
御剑: s106-109,s123,s125

#!/usr/bin/env python
# -*- coding: utf-8 -*- 
#  2014/01/15 14:15
import sys
from itertools import *
from operator import itemgetter
def parse(filename):
    d = {}
    for line in open(filename, 'r'):
        _line = line.split()
        d.setdefault(_line[0], []).append(_line[1])
    for key in d.keys():
        data = sorted(map(lambda x: int(x[1:]), d[key]))
        sys.stdout.write(key + " ")
        for k, g in groupby(enumerate(data), lambda (i, x): i - x):
            ret = map(itemgetter(1), g)
            if len(ret) > 1:
                sys.stdout.write("S%d-%d," % (ret[0], ret[-1]))
            elif len(ret) == 1:
                sys.stdout.write(str("S%s") % ret[0] + ",")
        sys.stdout.write('\n')
if __name__ == "__main__":
    filename = sys.argv[1]
    parse(filename)
Python 相关文章推荐
详解Django框架中用户的登录和退出的实现
Jul 23 Python
浅谈五大Python Web框架
Mar 20 Python
基于python内置函数与匿名函数详解
Jan 09 Python
Python函数装饰器常见使用方法实例详解
Mar 30 Python
Django中使用Whoosh进行全文检索的方法
Mar 31 Python
一篇文章搞定Python操作文件与目录
Aug 13 Python
PyCharm使用之配置SSH Interpreter的方法步骤
Dec 26 Python
python中的itertools的使用详解
Jan 13 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
May 12 Python
在pycharm中文件取消用 pytest模式打开的操作
Sep 01 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
Python 多进程原理及实现
Dec 21 Python
Python批量修改文件后缀的方法
Jan 26 #Python
使用cx_freeze把python打包exe示例
Jan 24 #Python
Python的函数嵌套的使用方法
Jan 24 #Python
下载安装setuptool和pip linux安装pip    
Jan 24 #Python
python解析文件示例
Jan 23 #Python
python回调函数的使用方法
Jan 23 #Python
python中的对象拷贝示例 python引用传递
Jan 23 #Python
You might like
linux实现php定时执行cron任务详解
2013/12/24 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
JavaScript this调用规则说明
2010/03/08 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
使用js画图之饼图
2015/01/12 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
2018/09/27 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
跟老齐学Python之编写类之二方法
2014/10/11 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
python设置表格边框的具体方法
2020/07/17 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
CSS3 制作精美的定价表
2021/04/06 HTML / CSS