python list使用示例 list中找连续的数字
2014-01-27 09:36
706 查看
线上有个需求,格式化,从一堆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 list使用示例 list中找连续的数字
- python使用递归解决全排列数字示例
- python list 遍历使用enumerate,包含数字和ele
- python使用递归解决全排列数字示例
- Python List(列表)使用示例
- Java中LinkedList详解和使用示例_动力节点Java学院整理
- Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例
- 按示例学python:使用python抓取网页正文
- python学习(三)数字类型示例
- 多线程学习-ListenableFuture使用介绍以及示例
- 使用 Python 生成类数字字母混合验证码图片
- python基础学习之——使用list和tuple
- python中MethodType方法介绍与使用示例
- Python-memcached的基本使用(python 中使用memcached简单示例)
- 在Python中操作列表之list.extend()方法的使用
- python 栈和队列(使用list实现)
- Python使用pyautogui模块实现自动化鼠标和键盘操作示例
- chrome-headless使用示例(Python)——打开百度
- Python3使用pandas模块读写excel操作示例
- Guava并发:ListenableFuture使用介绍以及示例