python 判断连续数字并返回分组

2019-05-14  本文已影响0人  线断木偶人

假如有(1,2,3,4,7,8,9,10,20)
按连续顺序分组排列
[1,2,3,4]
[7,8,9,10]
[20]

代码如下

from itertools import groupby

lst = [2, 3, 5, 6, 7, 8,1, 11, 12, 13,15,27,28,29]

#fun = lambda (i, v): v - i
fun = lambda x: x[1] - x[0]
for k, g in groupby(enumerate(lst), fun):
    print ([v for i, v in g])

#由于python3中lambda不支持用括号的方式解压,只能这样写
#fun = lambda x: x[1] - x[0]

结果

[2, 3]
[5, 6, 7, 8]
[1]
[11, 12, 13]
[15]
[27, 28, 29]
上一篇 下一篇

猜你喜欢

热点阅读