|

楼主 |
发表于 2017-11-3 04:32:42
From FishC Mobile
|
显示全部楼层
本帖最后由 jerryxjr1220 于 2017-11-3 05:31 编辑
bush牛 发表于 2017-11-2 19:51
我的思路和你一样,就是比较前一个和后一个关系。
下面是核心代码,我就觉得他用的enumerate和groupby结 ...
你这段代码并没有满足你的程序要求啊
- from itertools import groupby
- def conti_sort(lst):
- fun = lambda x: x[1]-x[0]
- for k, g in groupby(enumerate(lst), fun):
- print [v for i, v in g]
- conti_sort([2,3,5,6,7,9])
复制代码
除非这样写:
- from itertools import groupby
- def conti_sort(lst):
- fun = lambda x: x[1]-x[0]
- tmp = []
- for k, g in groupby(enumerate(lst), fun):
- tmp.append([v for i, v in g])
- for each in tmp:
- print ('%d-%d'%(each[0],each[-1]) if len(each)>1 else each[0], end=', ')
- conti_sort([2,3,5,6,7,9])
复制代码
但是总觉得这样写太累赘,原本的程序一次循环也可以解决了,代码的复杂度也低。 |
|