源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-06-05 22:11 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python list使用示例 list中找连续的数字
线上有个需求,格式化,从一堆s1,s100-s199中找出连续的服并且格式化显示出来,如: 神魔:S106-109,s123,s125 御剑: s106-109,s123,s125
[u]复制代码[/u] 代码如下:
#!/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)
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部